我有一个应用程序运行在http://www.example.com:9090/mycontext上的tomcat。 server.xml的主机名指向www.example.com 。 我没有localhost了。 我正在使用mod_proxy使用Apache转发请求到tomcat。 事情工作正常,只要ProxyPath是/mycontext 。 虚拟主机中的服务器名称设置为www.abc.com , http://www.abc.com/mycontext : www.abc.com正常工作。 不过,我想忽略上下文path,只需使用http://www.abc.com/将请求转发到http://www.example.com:9090/mycontext 。 当我这样做,Apache显示我一个空白页面。 我在这里错过了什么? 除了默认主机www.example.com之外,我没有更改server.xml任何内容。
<VirtualHost *:80> ServerName www.abc.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://www.example.com:9090/mycontext ProxyPassReverse / http://www.example.com:9090/mycontext </VirtualHost>
谢谢
匹配的尾部斜线在mod_proxy中很重要。
ProxyPass / http://www.example.com:9090/mycontext
这将采取请求http://www.abc.com/something并代理它到http://www.example.com:9090/mycontextsomething – 不是非常有帮助!
试试这个configuration,而是:
ProxyPass / http://www.example.com:9090/mycontext/ ProxyPassReverse / http://www.example.com:9090/mycontext/
另外 – 如果Tomcat期望www.example.com作为主机头,那么你可能不需要ProxyPreserveHost On指令。