我无法将 apache2 前端代理配置到其他服务器并提供 apache2 内容。我的目的是让 apache2 提供一些静态内容和一些动态应用程序,这些应用程序既有域名的,也有作为文档根目录子文件夹的,还提供一些动态应用程序,这些应用程序既有域名的,也有没有域名的,代理在 apache2 后面。换句话说,我想做以下事情
- http://my.server.edu/(由来自“/Users/me/Sites”的 apache2 提供服务)
- http://my.server.edu/lib(由来自“/Users/me/Sites/lib”的 apache2 提供服务)
- http://my.server.edu/app0(由来自“/Users/me/Sites/app0”的 apache2 提供服务
- http://my.server.edu/app1(由 Starman 从“Users/me/Docs/www/app1”提供服务)
- http://vapp1.org(由 Starman 从“Users/me/Docs/www/vapp1”提供服务)
- http://vapp1.org/lib(由来自“/Users/me/Sites”的 apache2 提供服务)
- http://subapp.vapp1.org(由 Starman 从“Users/me/Docs/www/subapp”提供)
- http://subapp.vapp1.org/lib(由来自“/Users/me/Sites”的 apache2 提供服务)
这是我的(简化的)配置文件,其中包含我的意图和评论中表现出的意外行为。
####################################################
# Default settings for http://my.server.edu/
####################################################
Listen 80
ServerName my.server.edu:80
DocumentRoot "/Users/me/Sites"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/Users/me/Sites">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
####################################################
# Static content for http://my.server.edu/lib
####################################################
Alias /lib "/Users/me/Sites/lib"
# The server responds with a "502 Bad gateway" error
ScriptAlias /cgi-bin/ "/Users/me/cgi-bin/"
<Directory "/Users/me/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
####################################################
# Proxies
####################################################
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
# The following app should get their static content
# from http://my.server.edu/lib, but the server responds
# with a "502 Bad gateway" error
####################################################
# http://my.server.edu/app1
####################################################
ProxyPass /app1 http://127.0.0.1:5000
ProxyPassReverse /app1 http://127.0.0.1:5000
# The server responds with a "502 Bad gateway" error
# when serving static content
####################################################
# Virtual host http://vapp1.org
####################################################
<VirtualHost *:80>
ServerName vapp1.org
####################################################
# Static content for http://vapp1.org/lib
####################################################
Alias /lib "/Users/me/Sites/lib"
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:5001
ProxyPassReverse / http://127.0.0.1:5001
</VirtualHost>
#####################################################
# Virtual host subdomain http://subapp.vapp1.org
#####################################################
<VirtualHost *:80>
ServerName subapp.vapp1.org
####################################################
# Static content for http://subapp.vapp1.org/lib
####################################################
Alias /lib "/Users/me/Sites/lib"
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:5002
ProxyPassReverse / http://127.0.0.1:5002
</VirtualHost>
从上面可以看出,如果我的配置文件中有虚拟主机段,那么服务器会对所有应该来自http://my.server.edu。
但是,如果我删除虚拟主机段,所有其他应用程序都可以正常工作。
我确信我在之前的机器上可以做到这一点,但现在我无法重现这一点。我做错了什么?