Apache 端口转发

Apache 端口转发

我在 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/

相关内容