在我的DigitalOcean vps中,我有Apache2(LAMP),phpmyadmin和Tomcat 8.一切运行良好。 现在我正在尝试实现反向代理,因此我可以通过https://mydominiam.com:8080而不是https://mydominiam.com/tomcat来访问tomcat8。阅读完一些教程后,我可以在/etc/apache2/sites-available/mydomain.com-ssl.conf中获取此代码:
<VirtualHost *:443>
ServerAdmin mydomain@mydomain.com
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /home/user/ssl/mydomain.com.crt
SSLCertificateKeyFile /home/user/ssl/mydomain.com.key
SSLCertificateChainFile /home/user/ssl/intermediate.crt
# AJP configuration
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /tomcat ajp://mydomain.com:8009/
ProxyPassReverse /tomcat ajp://mydomain.com:8009/
ProxyPassReverseCookiePath / /
</VirtualHost>
上面的代码是访问https:// mydomain / tomcat的时候,tomcat主页出现了,但链接断了。
但如果我改变代码:
ProxyPass /tomcat ajp://mydomain.com:8009/
ProxyPassReverse /tomcat ajp://mydomain.com:8009/
的
ProxyPass / ajp://mydomain.com:8009/
ProxyPassReverse / ajp://mydomain.com:8009/
tomcat主页重新加载通常没有损坏的链接,但只能通过网址https://mydomain.com
我尝试按照this教程,但仍然失败。有人可以告诉我我做错了什么吗?
答案 0 :(得分:0)
将ProxyPass
与您尝试重写上下文路径的Tomcat应用程序一起使用(在上面的配置中,将/tomcat
更改为/
),您的应用程序有很多种方法可以断裂。
最好使用这样的配置:
ProxyPass /tomcat ajp://mydomain.com:8009/tomcat
ProxyPassReverse /tomcat ajp://mydomain.com:8009/tomcat
现在,将您的应用程序部署为/tomcat
而不是ROOT上下文。您可以通过将WAR文件从ROOT.war
重新命名为tomcat.war
(或将展开的WAR目录从ROOT
重命名为tomcat
)来轻松完成此操作。
如果您执行上述操作,则无需在页面内重写链接等任何游戏。