Apache ReverseProxyPass 重定向到 http 而不是 https

Pau*_*aul 6 https reverse-proxy mod-proxy apache-2.2

我有一个使用 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>
Run Code Online (Sandbox Code Playgroud)

这在大多数情况下都能正常工作。问题在于内部服务器何时进行重定向。虽然 proxypassreverse 应该捕获该位置,但它似乎会重定向到http://reverse.server.com而不是https://reverse.server.com。所以它工作了一半,地址正确更改,但协议仍然作为内部服务器。

我不清楚为什么这样做,因为代理连接是 SSL - 有什么想法吗?

Mir*_*ici 8

ProxyPassReverse无法修复这种重定向。有2种方法可以解决问题:

  • 对内部站点使用 HTTPS。例如ProxyPass / https:...ProxyPassReverse / https:(实际上,在您的情况下不需要最后一个)。
  • 在反向代理中使用 mod_headers: Header edit Location ^http: https:
  • 在反向代理中使用 mod_rewrite 来更改重定向。