Niektóre nasze interfejsy dotyczą zmian w danych użytkowników, a te interfejsy pozwalają tylko stronie dostępu na nasze zmiany, więc mamy białą listę IP na nginx.
Jest wyposażony w adres IP wyjściowy strony dostępowej.
Oto logi z naszego dostępu nginx.
nginx przyjmuje nasz $remote_addr jako prawdziwy IP, ale w rzeczywistości $http_X_Forwarded_For to prawdziwy adres IP użytkownika, $remote_addr to po prostu prywatny adres sieci naszej F5 (użytkownik -->f5 --> nginx), co powoduje, że nginx przyjmuje błędną nazwę, a użytkownik dostosowujący interfejs to zawsze 403.
Rozwiązanie:
W module http plus
set_real_ip_from 10.10.10.122; Powiedz nginx, żeby uzyskał wartość RealIP stamtąd
real_ip_header X-Real-IP; Nazwa zmiennej, która przechowuje wartość RealIP
Puszka!
Tutaj zaczynamy raport nginx po dodaniu:
nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26
Dodajemy więc moduł realip i rekompilujemy nginx
1、cd /usr/local/nginx-1.6.3 2、./configure --prefiks=/usr/cmcc/nginx --with-http_stub_status_module -with-http_ssl_module --with-http_realip_module 3、Make & Make install
Wskazówki:
1. set_real_ip_from odnosi się do rzeczywistego IP użytkownika uzyskanego, z którego zaufany pre-proxy
2. real_ip_header odnosi się do IP użytkownika poprzedniej transmisji proxy, z której pochodzi część HTTP odebranej wiadomości
3. real_ip_recursive Czy rekurencyjnie wykluczać do momentu uzyskania adresu IP użytkownika (domyślnie jest wyłączone)
Po pierwsze, real_ip_header określić nazwę nagłówka http, która domyślnie jest X-Real-IP.
(1) Jeśli jest 1 adres IP, sprawdzi, czy IP nadawcy znajduje się na liście zaufanych IP określonych przez set_real_ip_from. Jeśli jest zaufany, uzna, że wartość IP w tym X-Real-IP to rzeczywista wartość IP użytkownika podany przez byłego agenta, więc przypisze tę wartość do własnej zmiennej $remote_addr; Jeśli nie jest zaufany, nie zostanie przetworzony, a $remote_addr nadal jest adresem IP nadawcy.
(2) Jeśli X-Real-Ip ma wiele wartości IP, na przykład, poprzedni proxy jest ustawiony tak: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;
Otrzymujesz ciąg IP adresów, więc wartość real_ip_recursive jest teraz kluczowa. nginx porównuje adresy IP z listy set_real_ip_from zaufania od prawej do lewej na liście IP. Jeśli real_ip_recursive jest nieprawidłowy, to gdy najbardziej prawy IP zostanie uznany za zaufany, uważa się, że następny IP (drugi po prawej) jest rzeczywistym IP użytkownika. Jeśli real_ip_recursive jest włączony, będzie porównywany od prawej do lewej, aż znajdzie adres IP nieufny. Następnie skopiuj wartość IP do $remote_addr.
Zasoby:
https://help.aliyun.com/document_detail/54007.html
https://help.aliyun.com/knowledge_detail/55198.html
https://www.linux178.com/web/nginx-get-realip.html
|