以前,我正确设置了 Apache HTTP 以将端口 80 上的传入 HTTP 请求转发到端口 8080 上运行的 Tomcat 实例。但是,现在我处于需要能够将端口 80 上的传入请求代理到任一Tomcat @ 8080 或不同的进程 @ 9000,具体取决于主机名。下面是我尝试设置我的 Apache 配置以处理这种情况的片段:
<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>
现在,当从hostname1或hostname2请求时,我得到一个即时 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 没有接收传入的请求,因此没有日志输出
为了理智起见,我检查了我确实可以在各自的端口上单独访问这两个资源,即我可以使用 hostname1:8080访问hostname1 ,使用hostname2 :9000 访问 hostname2。
这里有什么东西可以帮助我正确配置吗?
此外,有没有更好的方法以更理智的方式管理这个问题?
感谢您的任何帮助!