在我的办公室,我在一台 Windows 7 机器上设置了两台服务器(我们的网络是 Windows 域)。一台是 Apache,运行在端口 80 上,另一台是内置的 trac 服务器,运行在端口 8080 上。我有一个 DNS 条目,将 reviewboard.etc.etc 重定向到 apache 服务器,但对于 trac 服务器,它仍然需要指定端口。我怎样才能让 trac.etc.etc 重定向到 machinename:8080?
编辑:
解决方案,以防以后有人偶然发现这一点。以下内容进入了<virtualhost *:80>
我的 httpd.conf 中包含的文件中的块中:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^trac\.etc\.etc
RewriteRule (.*) http://localhost:8080$1 [P]
ProxyPassReverse / http://localhost:8080/
再次编辑包含 ProxyPassReverse,如果没有它,代理服务器生成的所有 URL将会打破
答案1
我不知道“trac”是什么,但如果它的默认端口是 8080,则为您的公共 IP 设置 A 记录并进行 NAT 和防火墙。在更可能的情况下,它是一个 Web 应用程序/服务器,那么您仍然设置 A 记录,但 DNS 不识别端口,用户必须输入 8080,除非您使用类似 mod redirect 的程序通过 Apache 设置重定向。- Sam 的想法
答案2
您始终可以使用 mod_proxy 无缝地将重定向处理为另一台服务器/端口。apache.org 上提供的 mod_proxy 基本文档介绍了如何执行此操作。