Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 17771|Răspunde: 1

[Web] nginx obține adresa IP reală a utilizatorului

[Copiază linkul]
Postat pe 19.05.2018 11:38:55 | | | |
Unele dintre interfețele noastre implică modificări ale informațiilor utilizatorului, iar aceste interfețe permit doar părții de acces să ne ajusteze, așa că avem o listă albă IP pe nginx.

Este echipat cu IP-ul de ieșire al părții de acces.

Iată jurnalele din accesul nostru nginx.



nginx ia $remote_addr ca IP real, dar de fapt, $http_X_Forwarded_For este IP-ul real al utilizatorului, $remote_addr este doar adresa privată de rețea a f5-ului nostru (utilizator -->f5 --> nginx), ceea ce duce la faptul că nginx ia numele greșit și utilizatorul care ajustează interfața este întotdeauna 403.

Soluție:

În modulul http plus


set_real_ip_from 10.10.10.122; Spune-i lui nginx să obțină valoarea RealIP de acolo
real_ip_header X-Real-IP; Numele variabilei care stochează valoarea RealIP

Putea!

Aici începem raportul nginx după ce adăugăm:

nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26




Așadar, adăugăm modulul realip și recompilăm nginx


1、cd /usr/local/nginx-1.6.3
2、./configure --prefix=/usr/cmcc/nginx --cu-http_stub_status_module --cu-http_ssl_module --cu-http_realip_module
3、Make & Make install

Sfaturi:
1. set_real_ip_from se referă la IP-ul real al utilizatorului obținut de la care pre-proxy de încredere

2. real_ip_header se referă la IP-ul utilizatorului transmisiei proxy anterioare din care se obține partea HTTP a mesajului primit

3. real_ip_recursive Dacă să excluzi recursiv până când IP-ul utilizatorului este obținut (implicitul este dezactivat)

În primul rând, real_ip_header specifica un nume de antet http, care este implicit X-Real-IP.

(1) Dacă există 1 IP, va verifica dacă IP-ul expeditorului se află în lista de IP-uri de încredere specificată de set_real_ip_from. Dacă este de încredere, va considera că valoarea IP din acest X-Real-IP este valoarea reală a IP-ului utilizatorului transmisă de agentul anterior, așa că va atribui această valoare propriei sale variabile $remote_addr; Dacă nu este de încredere, nu va fi procesat, iar $remote_addr rămâne adresa IP a expeditorului.

(2) Dacă X-Real-Ip are mai multe valori IP, de exemplu, proxy-ul anterior este setat astfel: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;

Ceea ce obții este un șir de IP-uri, deci valoarea real_ip_recursive este crucială în acest moment. nginx va compara IP-urile din lista de încredere set_real_ip_from de la dreapta la stânga din lista de IP. Dacă real_ip_recursive este dezactivat, atunci când IP-ul cel mai din dreapta este considerat a fi de încredere, se crede că următorul IP (al doilea din dreapta) este IP-ul real al utilizatorului. Dacă real_ip_recursive este pornit, va fi comparat de la dreapta la stânga până găsește un IP nede de încredere. Apoi copiază și valoarea IP în $remote_addr.

Resurse:
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





Precedent:Hărțile sitehărților discuz sunt generate automat
Următor:Folosește echilibrarea încărcării Alibaba Cloud pentru a bloca accesul IP la site-uri web
Postat pe 18.06.2018 14:57:50 |
Uite, nginx primește adevărata proprietate intelectuală
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com