Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 17771|Odpowiedź: 1

[Web] nginx uzyskuje rzeczywisty adres IP użytkownika

[Skopiuj link]
Opublikowano 19.05.2018 11:38:55 | | | |
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





Poprzedni:Mapy lokalizacji Discuz są generowane automatycznie
Następny:Użyj Alibaba Cloud load balance, aby zablokować dostęp IP do stron internetowych
Opublikowano 18.06.2018 14:57:50 |
Spójrz, nginx dostaje prawdziwe IP
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com