我有一个奇怪的设置。看起来像这样:
Browser ----------> HTTPs Proxy ------> Apache HTTP -----> Tomcat AJP
HTTPS HTTP AJP
在HTTPS代理(一个非常笨的代理)上,出现了一个类似于https://proxy.domain.com/app的URL。然后使用HTTP像http://apache.domain.com/app一样将其通过隧道传输到Apache(传入主机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
我尝试使用ProxyPassReverse,但无法弄清楚如何强制使用https而不是http重写302重定向URL。
有什么想法吗?