以前,我正确设置了Apache HTTP以将端口80上的传入HTTP请求转发到运行在端口8080上的Tomcat实例。但是,现在我处于这种情况,我需要能够将端口80上的传入请求代理到Tomcat @ 8080或不同的进程@ 9000,具体取决于主机名。下面是我在设置我的Apache配置试图处理这种情况的一个片段:基于主机名的Apache HTTP代理
<VirtualHost *:80>
ServerName hostname1
ProxyPreserveHost On
ProxyPass/http://hostname1:8080/
ProxyPassReverse/http://hostname1:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName hostname2
ProxyPreserveHost On
ProxyPass/http://hostname2:9000/
ProxyPassReverse/http://hostname2:9000/
</VirtualHost>
现在无论从主机名1或主机名2请求的时候,我得到即时的500显然是由于mod_proxy的找不到任何匹配规则代理请求:
[Fri Feb 08 06:41:01 2013] [warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
注意,Tomcat没有接收到传入的请求,因此没有日志输出
对于理智的缘故,我检查,我确实可以单独在各自的港口,即访问这两种资源,我可以使用主机名1访问主机名1:8080 主机名2使用主机名2:9000。
有没有什么东西在这里丢失,以帮助我正确配置?
此外,有没有更好的方式来管理这可能是一种更理智的方式?
谢谢你的帮助!
是你的 “主机名” 完全合格的?另外,你在日志文件中看到了什么?有什么东西进入你的Tomcat日志? – 2013-02-08 14:59:56
完全符合“name.com”(无“www”),是的。 – jerluc 2013-02-08 15:01:37
在 – jerluc 2013-02-08 15:03:24