小编Geo*_*rge的帖子

使用中间的 Apache 代理重写 302 应用服务器重定向 URL

我有一个奇怪的设置。它看起来像这样:

Browser ----------> HTTPs Proxy ------> Apache HTTP -----> Tomcat AJP
           HTTPS                 HTTP                AJP
Run Code Online (Sandbox Code Playgroud)

在 HTTPS 代理(一个非常愚蠢的代理)上,一个 URL 看起来像 https://proxy.domain.com/app。然后它使用 HTTP 隧道传输到 Apache,就像 http://apache.domain.com/app(传入主机 proxy.domain.com)。Apache 然后使用 AJP 协议在本地将请求通过隧道传输到 ajp://localhost:8009/app/。

有时应用服务器想要重定向请求的路径。例如,将 /app/ 重定向到 /app/webapp。因此,它将 302 发送回重定向路径的 apache - 可能类似于 ajp: //localhost:8009/app/webapp。Apache 然后将重定向 URL 重写为 http://proxy.domain.com/app/webapp。HTTPS 代理很笨,所以它不会分析重定向并将 http 更改为 https。

所以,我想弄清楚我是否可以配置 Apache 来重写 302 重定向 URL 以将用户发送到 https。

这是我目前在 Apache 的 https.conf 中的配置:

ProxyPreserveHost       on
RewriteEngine           on
RewriteRule ^/app$ /app/ [PT]
ProxyPass /app ajp://localhost:8009/app
Run Code Online (Sandbox Code Playgroud)

我尝试使用ProxyPassReverse,但无法弄清楚如何强制它使用 https 而不是 http 重写 302 …

ssl mod-proxy redirect apache-2.2

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

apache-2.2 ×1

mod-proxy ×1

redirect ×1

ssl ×1