繁体   English   中英

Apache2代理反向断开Tomcat8链接

[英]Apache2 proxy reverse broken Tomcat8 links

在我的DigitalOcean vps中,我有Apache2(LAMP),phpmyadmin和Tomcat8。一切运行良好。 现在我想实现反向代理,所以我不能访问tomcat8 https://mydominiam.com:8080https://mydominiam.com/tomcat 阅读一些教程后,我可以在/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主页不会重新加载任何断开的链接,而只能通过url https://mydomain.com重新加载

我试图按照教程进行操作,但仍然失败。 有人可以告诉我我在做什么错?

在试图重写上下文路径的Tomcat应用程序中使用ProxyPass (在上面的配置中,将/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 )来轻松地做到这一点。

如果执行上述操作,则无需玩任何具有重写页面内链接的游戏,等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM