我有一个在Tomcat 8中运行的Web应用程序。我可以通过打开http://subdomain.domain.com:8080/MYAPP访问此应用程序。 现在我只想输入http://subdomain.domain.com来打开这个应用程序。Apache和Tomcat 8配置代理
如何配置我的Apache 2或Tomcat 8来实现这一目标?
我有一个在Tomcat 8中运行的Web应用程序。我可以通过打开http://subdomain.domain.com:8080/MYAPP访问此应用程序。 现在我只想输入http://subdomain.domain.com来打开这个应用程序。Apache和Tomcat 8配置代理
如何配置我的Apache 2或Tomcat 8来实现这一目标?
有关更多详细信息,请参阅我的答案。
https://stackoverflow.com/a/26305876/1935128
但基本上,你需要mod_proxy
,也许mod_proxy_connect
在Apache启用了基于Apache侧适当virtualhost
配置。而在Tomcat的方面,它可以工作,没有任何修改,但你应该添加proxyName="subdomain.domain.com
,proxyPort="80"
和scheme="http"
的Tomcat连接器:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
<!-- This is the important part -->
proxyName="subdomain.domain.com" proxyPort="80"/>
Apache的虚拟主机:
<VirtualHost subdomain.mydomain.com:80>
ServerName http://subdomain.mydomain.com
# I think these two are optional, depending on the app your run on Tomcat
#ProxyRequests Off
#ProxyPreserveHost On
ProxyPass / http://your.tomcat.server:8080/MYAPP/
ProxyPassReverse / http://your.tomcat.server:8080/MYAPP/
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
到目前为止,谢谢你,但我有一个问题。 tomcat 8 web应用程序的路径就像subdomain.domain:8080/MYAPP,所以如果我在浏览器中输入subdomain.domain.com,我会重定向到tomcat服务器的主站点,但是我想让root子域.domain.com指向原始的tomcat URL,而不在浏览器中显示此ULR。你能再帮我一次吗? – 2014-10-22 13:42:53
我的不好,没有正确地读你的问题。你必须改变'ProxyPass'和'ProxyPassReverse'来添加你的路径。例如:'ProxyPass/http://your.tomcat.server:8080/MYAPP /'。我不确定最后一个/尽管如此,试着用'http://your.tomcat.server:8080/MYAPP /'和'http://your.tomcat.server:8080/MYAPP''告诉我哪一个是对的,我会按照顺序编辑我的答案。 – Johnride 2014-10-22 14:01:01
非常感谢。它是http://your.tomcat.server:8080/MYAPP /。现在它工作正常。 – 2014-10-22 14:10:55
我解决我的问题与下列答案: http://serverfault.com/questions/397617/apache-mod-proxy-page-reload-and-sessions – 2014-10-23 08:09:55