Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 17771|Svare: 1

[Web] nginx får brukerens reelle IP-adresse

[Kopier lenke]
Publisert på 19.05.2018 11:38:55 | | | |
Noen av grensesnittene våre innebærer endringer i brukerinformasjon, og disse grensesnittene lar bare tilgangsparten justere oss, så vi har en IP-hviteliste på nginx.

Den er utstyrt med utgangs-IP-en til aksessparten.

Her er loggene fra vår nginx-tilgang.



nginx tar vår $remote_addr som den ekte IP-en, men faktisk er $http_X_Forwarded_For brukerens ekte IP, $remote_addr er bare den private nettverksadressen til vår f5 (bruker -->f5 --> nginx), noe som resulterer i at nginx tar feil navn og brukeren som justerer grensesnittet alltid er 403.

Løsning:

I http-modulen pluss


set_real_ip_from 10.10.10.122; Si til nginx at de kan hente verdien av RealIP derfra
real_ip_header X-Real-IP; Navnet på variabelen som lagrer RealIP-verdien

Boks!

Her starter vi nginx-rapporten etter å ha lagt til:

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




Så vi legger til realip-modulen og kompilerer nginx på nytt


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

Tips:
1. set_real_ip_from refererer til den reelle bruker-IP-en som er hentet fra den betrodde pre-proxyen

2. real_ip_header refererer til bruker-IP-en til den forrige proxy-overføringen, hvorfra HTTP-delen av den mottatte meldingen er hentet

3. real_ip_recursive Om man skal ekskludere rekursivt til brukerens IP er oppnådd (standard er av)

Først spesifiserer real_ip_header et http-headernavn, som som standard er X-Real-IP.

(1) Hvis det er 1 IP, vil den sjekke om avsenderens IP er i den betrodde IP-listen spesifisert av set_real_ip_from. Hvis den er betrodd, vil den tro at IP-verdien i denne X-Real-IP er brukerens reelle IP-verdi fortalt av den tidligere agenten, så den vil tildele denne verdien til sin egen $remote_addr-variabel; Hvis det ikke er betrodd, vil det ikke bli behandlet, og $remote_addr er fortsatt avsenderens IP-adresse.

(2) Hvis X-Real-Ip har flere IP-verdier, for eksempel, settes den forrige proxyen slik: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;

Det du får er en rekke IP-adresser, så verdien av real_ip_recursive er avgjørende akkurat nå. nginx vil sammenligne IP-adressene i set_real_ip_from trust-listen fra høyre til venstre i IP-listen. Hvis real_ip_recursive er av, tror man at når den høyre IP-en er en betrodd IP, antas det at neste IP (den andre til høyre) er brukerens ekte IP. Hvis real_ip_recursive er på, vil den bli sammenlignet fra høyre til venstre til den finner en ikke-pålitelig IP. Kopier deretter IP-verdien til $remote_addr også.

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





Foregående:Discuz-sitemaps genereres automatisk
Neste:Bruk Alibaba Cloud lastbalansering for å blokkere IP-tilgang til nettsteder
Publisert på 18.06.2018 14:57:50 |
Se, nginx får den ekte IP-en
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com