我有一个使用Apache mod_proxy的反向代理设置:
<VirtualHost *:443> ServerName reverse.server.com ProxyPass / http://10.1.9.11:3000/ ProxyPassReverse / http://10.1.9.11:3000/ ProxyPreserveHost on ...snip ssl stuff... </VirtualHost>
这在大多数情况下工作正常。 问题是当内部服务器做一个redirect。 虽然proxypassreverse应该抓住的位置,它似乎,它redirect到http://reverse.server.com,而不是https://reverse.server.com 。 所以它是一半的工作,地址更改正确,但协议保持为内部服务器。
我不清楚它为什么这样做,因为代理连接是SSL – 有什么想法?
ProxyPassReverse无法修复这种redirect。 有两种方法可以解决这个问题:
ProxyPass / https:...和ProxyPassReverse / https:实际上最后一个在你的情况下是不需要的)。 Header edit Location ^http: https: 我只是遇到同样的问题。 我们发现了两个想法,不知道它是否真的有效:1 /使用RequestHeader设置X-Forwarded-Protocol“https”=> http://toroid.org/ams/etc/mixing-http-and-https
2 /使用variableshttpsindicatorheader(这是一个websphere)通过应用程序服务器指出初始请求是https。 然后每个redirect将在https上