这个问题苦恼了很久,应该就是开发的代码获取项目的相对路径和绝对路径的问题,但是不改代码用apache代理解决能否实现呢?答案是可以的。


下面是apache代理tomcat访问并https访问的配置

apache2.2,yum安装的

tomcat7,jdk1.7


tomcat的server.conf配置

在Host里加上Context

<Host name="localhost"  appBase="webapps"

unpackWARs="true" autoDeploy="true">

<Context docBase="/usr/local/tomcat/apache-tomcat-7.0.70/webapps/test/"

path="" reloadable="true" crossContext="true"/>

保存


httpd.conf配置文件,实现访问http自动跳到https,证书什么的就不介绍了。

<VirtualHost *:80>

ServerName localhost

ProxyVia Off

ProxyRequests Off

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{SERVER_PORT} 80

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

</IfModule>

</VirtualHost>


ssl.conf配置文件主要部分,url跳转到tomcat服务,9090/后不用加项目了,因为server.conf文件中docBase已经设置了test,默认访问tomcat的9090端口就是访问test,所以apache跳转也就直接到根/就行了。

ProxyRequests Off

<Proxy *>

Options MultiViews

Order deny,allow

Allow from all

</Proxy>

ProxyPass / http://172.26.124.219:9090/

ProxyPa***everse / http://172.26.124.219:9090/

</VirtualHost>


这是在浏览器输入    http://域名

直接就可以了。积累了经验,希望有帮助。。。。。