我正在尝试将我的apache 2.2配置为服务器上某些应用程序的代理。
tomcat-jira:使用Jira的安装程序安装; tomcat-dev:只是另一个应用程序的容器。
首先,我的httpd.conf是这样的:
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /jira http://dev.debian.local:8080/jira
ProxyPassReverse /jira http://dev.debian.local:8080/jira
ProxyPass /tomcat http://dev.debian.local:8088
ProxyPassReverse /tomcat http://dev.debian.local:8088
<Location /jira>
Order allow,deny
Allow from all
</Location>
<Location /tomcat>
Order allow,deny
Allow from all
</Location>
所以当我输入http://dev.debian.local/jira时它就可以了! 但是在tomcat-dev http://dev.debian.local/tomcat中,它显示页面,很糟糕,没有样式,当我点击manage-aps时,它会重定向到:
http://dev.debian.local/manager/html 而不是 http://dev.debian.local/tomcat/manager/html 导致404错误。
在tomcat-jira上,它有一个参数来配置应用程序:
它因为只是一个应用程序,所以它重定向正确。我怎样才能在tomcat实例上做这样的事情?是否有tomcat根的上下文路径?
答案 0 :(得分:3)
正如您所见,使用ProxyPass
更改Web应用程序的路径通常会破坏所有内容。
相反,你应该这样做:
ProxyPass /tomcat http://dev.debian.local:8088/tomcat
ProxyPassReverse /tomcat http://dev.debian.local:8088/tomcat
或者这个:
ProxyPass / http://dev.debian.local:8088
ProxyPassReverse / http://dev.debian.local:8088
如果您选择第二个选项,请将“tomcat”Web应用程序重命名为“ROOT”(区分大小写:使用大写字母,即使是对cass不敏感的文件系统)。