Я проверяю свою настройку из
nginx > apache/php
в
haproxy > nginx > apache/php
(используя haproxy 1.5-dev18 с скомпилированной поддержкой ssl)
И nginx, и haproxy настроены правильно, чтобы установить заголовок HTTP_X_FORWARDED_PROTO. Однако, когда nginx получает трафик ssl от haproxy, он видит соединение как http и устанавливает заголовок как таковой.
Как я могу настроить nginx для пересылки заголовка HTTP_X_FORWARDED_PROTO, если он существует, но в противном случае продолжить его настройку в зависимости от соединения?
proxy_set_header
строки до и после совпадают.$scheme
против$thescheme
.default $scheme
произойдет, если установить$thescheme
HTTPS, хотя на самом деле запрос (к haproxy) является небезопасным HTTP. - Чтобы избежать этого, как насчет:,default $http_x_forwarded_proto; '' $scheme;
так что если haproxy говорит HTTP, это будет соблюдаться.default $http_x_forwarded_proto;
).У меня была такая же потребность с AWS ELB
Вот моя решающая линия:
источник
$http_x_forwarded_proto
где-нибудь? Это что?proxy_set_header X-Forwarded-Proto $scheme;
, который не работаетЯ не могу просто комментировать, поэтому я публикую это как ответ: не могли бы вы дать нам часть или всю вашу конфигурацию nginx, чтобы мы могли увидеть, что с ней не так? Возможно ваш конфиг HAProxy тоже?
Первая проблема, о которой я могу подумать, заключается в том, что ваш HAProxy выполняет ssl-завершение. Подводя итог, можно сказать, что для разгрузки ваших внутренних серверов балансировщик нагрузки может быть настроен на выполнение всех операций ssl, а затем на связь с вашими внутренними серверами по протоколу HTTP. Как схема здесь: http://blog.exceliance.fr/2012/09/10/how-to-get-ssl-with-haproxy-getting-rid-of-stunnel-stud-nginx-or-pound/
Чтобы дать вам хороший ответ на ваш вопрос, не могли бы вы проверить, что в вашей конфигурации http <> https нет петлевой проблемы? Возможно, тогда вы могли бы перенаправить http на http, https на https, а затем принудительно перенаправить http на https.
Не могли бы вы также проверить, что вы включили ssl passthrough в вашей конфигурации HAProxy?
источник