У меня есть установка обратного прокси с использованием 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>
В большинстве случаев это работает нормально. Проблема в том, что внутренний сервер выполняет перенаправление. Хотя proxypassreverse должен улавливать местоположение, и кажется, что он перенаправляет на http://reverse.server.com а не https://reverse.server.com. Так что он наполовину работает, адрес меняется правильно, но протокол остается внутренним сервером.
Я не понимаю, почему он это делает, поскольку прокси-соединение - это SSL - есть идеи?
ProxyPassReverse
не могу исправить такого рода перенаправления. Есть 2 способа решить проблему:
ProxyPass / https:...
и ProxyPassReverse / https:
(на самом деле последний в вашем случае не требуется).Header edit Location ^http: https:
У меня такая же проблема. Мы нашли 2 идеи, которые стоит попробовать, не знаю, действительно ли это работает: 1 / используйте RequestHeader set X-Forwarded-Protocol "https" => http://toroid.org/ams/etc/mixing-http-and-https
2 / используйте переменную httpsindicatorheader (это веб-сфера), чтобы указать через сервер приложений, что первоначальный запрос был https. Тогда каждое перенаправление будет на https