Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 17771|Antwoord: 1

[Web] nginx verkrijgt het echte IP-adres van de gebruiker

[Link kopiëren]
Geplaatst op 19-05-2018 11:38:55 | | | |
Sommige van onze interfaces bevatten wijzigingen in gebruikersinformatie, en deze interfaces staan alleen toe dat de toegangspartij ons kan aanpassen, dus we hebben een IP-whitelist op nginx.

Het is uitgerust met het exit-IP van de toegangspartij.

Hier zijn de logs van onze nginx-toegang.



nginx neemt onze $remote_addr als het echte IP, maar in feite is $http_X_Forwarded_For het echte IP van de gebruiker, $remote_addr is gewoon het privé-netwerkadres van onze f5 (gebruiker -->f5 --> nginx), waardoor nginx de verkeerde naam aanneemt en de gebruiker de interface aanpast altijd 403 is.

Oplossing:

In de http-module plus


set_real_ip_from 10.10.10.122; Zeg tegen nginx dat ze de waarde van RealIP daar moeten halen
real_ip_header X-Real-IP; De naam van de variabele die de RealIP-waarde opslaat

Kunnen!

Hier beginnen we het nginx-rapport na toevoeging:

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




Dus voegen we de realip-module toe en compileren nginx opnieuw


1、cd /usr/local/nginx-1.6.3
2、./configureren --prefix=/usr/cmcc/nginx --met-http_stub_status_module --met-http_ssl_module --met-http_realip_module
3、Make & Make Install

Tips:
1. set_real_ip_from verwijst naar het echte gebruikers-IP waarvan vertrouwde pre-proxy is verkregen

2. real_ip_header verwijst naar het gebruikers-IP van de vorige proxytransmissie waaruit het HTTP-gedeelte van het ontvangen bericht is verkregen

3. real_ip_recursive Of recursief uitsluiten totdat het gebruikers-IP is verkregen (standaard staat uit)

Ten eerste specificeer real_ip_header een http-headernaam, die standaard X-Real-IP is.

(1) Als er 1 IP is, controleert het of het IP van de afzender in de door de set_real_ip_from gespecificeerde vertrouwde IP-lijst staat. Als het wordt vertrouwd, zal het denken dat de IP-waarde in deze X-Real-IP de echte IP-waarde van de gebruiker is die door de vorige agent is verteld, dus zal het deze waarde toewijzen aan zijn eigen $remote_addr-variabele; Als het niet wordt vertrouwd, wordt het niet verwerkt en is $remote_addr nog steeds het IP-adres van de afzender.

(2) Als X-Real-Ip meerdere IP-waarden heeft, wordt de vorige proxy als volgt ingesteld: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;

Wat je krijgt is een reeks IP's, dus de waarde van real_ip_recursive is op dit moment cruciaal. nginx zal de IP's in de set_real_ip_from trustlijst van rechts naar links vergelijken in de IP-lijst. Als de real_ip_recursive niet klopt, wordt aangenomen dat het volgende IP (het tweede rechts) het echte IP van de gebruiker is, wanneer het meest rechts IP wordt gevonden. Als de real_ip_recursive aanstaat, wordt deze van rechts naar links vergeleken totdat er een niet-vertrouwd IP wordt gevonden. Kopieer vervolgens ook de IP-waarde naar $remote_adr.

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





Vorig:Discuz-sitemaps worden automatisch gegenereerd
Volgend:Gebruik Alibaba Cloud load balancing om IP-toegang tot websites te blokkeren
Geplaatst op 18-06-2018 14:57:50 |
Kijk, nginx krijgt de echte IP
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com