我已经使用 Apache HTTP 和 Tomcat 构建了一个设置,它们通过 mod_proxy 相互通信。我已经粘贴了我在下面使用的配置。我遇到的问题是会话丢失,我认为这与代理配置不当有关。我阅读了很多文章,但仍然无法弄清楚我做错了什么。
httpd.conf:
<VirtualHost MACHINE_IP:80>
ServerName www.mydomain.com
ProxyRequests Off
ProxyPass /apps/my_app http://MACHINE_IP:8080/my_app
ProxyPassReverse /apps/my_app http://MACHINE_IP:8080/my_app
Header set P3P "CP=\"HONK\""
</VirtualHost>
<VirtualHost MACHINE_IP:443>
ServerName www.mydomain.com
ProxyRequests Off
ProxyPass /apps/my_app https://MACHINE_IP:8443/my_app
ProxyPassReverse /apps/my_app https://MACHINE_IP:8443/my_app
Header set P3P "CP=\"HONK\""
</VirtualHost>
Tomcat(在 MACHINE_IP 上)在常用端口 8080 和 8843 上运行,配置如下(我认为这是默认配置):
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
/>
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="cert/tomcat.keystore"
keystorePass="password"
/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
</Server>
奇怪的是,当我在 server.xml 中配置任何 proxyName 和 proxyPort 以及主机的域名时,一切都停止工作了。上面的 server.xml 示例正在运行,但由于某种原因,会话丢失。