HTTPS 反向代理旧 tomcat 应用程序

HTTPS 反向代理旧 tomcat 应用程序

我正在尝试将旧的 Tomcat 置于 Apache HTTPS 反向代理之后。我配置了 https 虚拟主机来执行实际代理,并配置了 http 虚拟主机以将所有内容重定向到 https:

https 代码片段:

ProxyRequests Off

ProxyPass           /old_app/       http://192.168.1.18:8080/old_app/
ProxyPassReverse    /old_app/       http://192.168.1.18:8080/old_app/

http 片段:

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

问题是网站显示了,但没有 CSS 或图像。如果使用 Chrome 开发者控制台检查,我会看到很多有关混合内容的错误,这些错误被阻止是因为最初在 http 中引用。我四处搜索,找到了一些关于修改代理网站的建议,但在我的处境下,我无法修改 Tomcat webapp。有办法解决这个问题吗?或者唯一的方法是修改 old_app 源代码?也许切换到 Nginx 并进行一些特定的配置?

答案1

重写 HTML,以便可以将方案从 HTTP 更改为 HTTPS

您正在寻找mod_proxy_html

代理本身无法重写包含方案、域或 URL 的 HTML。此模块允许您动态重写这些内容。

相关内容