Opieram się na mojej konfiguracji
nginx > apache/php
do
haproxy > nginx > apache/php
(przy użyciu haproxy 1.5-dev18 z wkompilowaną obsługą ssl)
Zarówno nginx, jak i haproxy są poprawnie skonfigurowane, aby ustawić nagłówek HTTP_X_FORWARDED_PROTO. Jednak gdy nginx pobiera ruch ssl z haproxy, widzi połączenie jako http i ustawia nagłówek jako taki.
Jak ustawić nginx, aby przekazywał nagłówek HTTP_X_FORWARDED_PROTO, jeśli istnieje, ale w przeciwnym razie kontynuować ustawianie go w oparciu o połączenie?
proxy_set_header
wiersze są takie same.$scheme
vs$thescheme
.default $scheme
tak się stanie, ustawienie$thescheme
HTTPS, chociaż w rzeczywistości żądanie (do haproxy) nie jest bezpieczne HTTP. - Aby tego uniknąć, co zdefault $http_x_forwarded_proto; '' $scheme;
:, więc jeśli haproxy mówi HTTP, to będzie przestrzegane.default $http_x_forwarded_proto;
.).Taką samą potrzebę miałem z AWS ELB
Oto moja linia rozwiązywania:
źródło
$http_x_forwarded_proto
gdzieś? Co to jest?proxy_set_header X-Forwarded-Proto $scheme;
, co nie działaNie mogę tak po prostu komentować, więc zamieszczam to jako odpowiedź: Czy możesz podać nam część lub całość swojej konfiguracji nginx, abyśmy mogli zobaczyć, co jest z nią nie tak? Być może twoja konfiguracja HAProxy też?
Pierwszym problemem, jaki mogę wymyślić, jest to, że twój HAProxy robi zakończenie SSL. Podsumowując, aby odciążyć serwery zaplecza, moduł równoważenia obciążenia można skonfigurować tak, aby wykonywał wszystkie czynności związane z ssl, a następnie komunikował się z serwerami zaplecza za pomocą protokołu HTTP. Podobnie jak schemat tutaj: http://blog.exceliance.fr/2012/09/10/how-to-get-ssl-with-haproxy-getting-rid-of-stunnel-stud-nginx-or-pound/
Aby dać ci dobrą odpowiedź na twoje pytanie, czy możesz sprawdzić, czy nie masz żadnych problemów z zapętleniem w konfiguracji http <> https? Może wtedy możesz przekierować http na http, https na https, a następnie wymusić przekierowanie http na https.
Czy możesz również sprawdzić, czy masz włączone przekazywanie SSL w konfiguracji HAProxy?
źródło