我在 Windows 上使用 Apache 2.2.11(使用 WAMP 安装)。服务器的 IP 例如为 3.3.3.3。我的主要 Apache 安装(apache1)正在监听端口 80 并为网站(www.domain1.com)提供服务。我们最近安装了一个具有 Web 发布功能的应用程序,该应用程序在内部使用 apache(apache2)。我已将该应用程序配置为监听端口 3000。我想通过域名(something.domain2.com)为第二个应用程序提供服务。
现在我已将两个 DNS 条目设置为指向同一 IP。但是我尝试配置主 apache 实例 (apache1),以将对端口 80 上的 something.domain2.com 的任何请求重定向到 something.domain2.com:3000(以便 apache2 可以接管它)。我首先尝试的 VirtualHost 配置是
服务器名称 something.domain2.com 重定向 301 /http://something.domain2.com:3000/
这不起作用。有什么想法吗?
答案1
你的设置可以/应该可以工作,我猜它看起来像这样:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain1.com
ServerAdmin [email protected]
DocumentRoot "/export/htdocs"
ErrorLog "/var/log/apache_error.log"
CustomLog "var/log/apache_access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerName something.domain2.com
Redirect permanent / http://something.domain2.com:3000/
</VirtualHost>
如果您发布您的 apache 配置以及一些 apache 日志可能会更好。
另一个想法:你是否测试过是否能够达到http://something.domain2.com:3000/没有重定向?
答案2
查看 Apache2 的 mod_proxy:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
你的虚拟主机可能看起来像这样:
ServerName foo.domain2.com
Order allow, deny
Allow from all
ProxyRequests Off
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/