在我的办公室里,我在一台Windows 7机器上安装了两台服务器(我们的networking是一个Windows域)。 一个是Apache,在端口80上运行,另一个是在端口8080上运行的内置trac服务器。我有一个DNS项目,将reviewboard.etc.etcredirect到Apache服务器,但对于trac服务器,它仍然期望端口被指定。 我怎样才能让trac.etc.etcredirect到machinename:8080?
编辑 :
解决scheme,以防有人后来绊倒。 以下内容在我的httpd.conf文件中包含的<virtualhost *:80>块中:
RewriteEngine on RewriteCond %{HTTP_HOST} ^trac\.etc\.etc RewriteRule (.*) http://localhost:8080$1 [P] ProxyPassReverse / http://localhost:8080/
再次编辑包含ProxyPassReverse,没有它,由代理服务器生成的所有URL 将中断
我不知道“trac”是什么,但是如果它的默认端口是8080,那么为你的公共IP设置一个Alogging,并通过NAT和防火墙。 在更可能的情况下,它的networking应用程序/服务器,然后你仍然设置Alogging,但DNS不知道端口,用户将不得不进入8080,除非你使用类似modredirect通过Apache设置redirect。 – 山姆的想法
您始终可以使用mod_proxy将通向另一个服务器/端口的无缝redirect作为通道。 apache.org上提供的mod_proxy的基本文档涵盖了如何做到这一点。