Nogle af vores grænseflader involverer ændringer i brugerinformation, og disse grænseflader tillader kun adgangsparten at justere os, så vi har en IP-hvidliste på nginx.
Den er udstyret med adgangspartens exit-IP.
Her er logs fra vores nginx-adgang.
nginx tager vores $remote_addr som den rigtige IP, men faktisk er $http_X_Forwarded_For brugerens rigtige IP, $remote_addr er blot den private netværksadresse på vores f5 (bruger -->f5 --> nginx), hvilket resulterer i, at nginx tager det forkerte navn, og brugeren, der justerer interfacet, altid er 403.
Opløsning:
I http-modulet plus
set_real_ip_from 10.10.10.122; Sig til nginx, at de skal få værdien af RealIP derfra
real_ip_header X-Real-IP; Navnet på den variabel, der gemmer RealIP-værdien
Dåse!
Her starter vi nginx-rapporten efter at have tilføjet:
nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26
Så vi tilføjer realip-modulet og genkompilerer nginx
1、cd /usr/local/nginx-1.6.3 2、./configure --præfiks=/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 henviser til den rigtige bruger-IP, som er opnået fra en betroet pre-proxy
2. real_ip_header henviser til bruger-IP'en for den tidligere proxy-transmission, hvorfra HTTP-delen af den modtagne besked opnås
3. real_ip_recursive Om man skal udelukke rekursivt, indtil brugerens IP er opnået (standard er slået fra)
Først specificerer real_ip_header et http-headernavn, som som standard er X-Real-IP.
(1) Hvis der er 1 IP, vil den kontrollere, om afsenderens IP er i den betroede IP-liste, der er angivet af set_real_ip_from. Hvis den er tillidsfuld, vil den tro, at IP-værdien i denne X-Real-IP er brugerens reelle IP-værdi, som den tidligere agent har oplyst, så den vil tildele denne værdi til sin egen $remote_addr-variabel; Hvis den ikke er betroet, vil den ikke blive behandlet, og $remote_addr er stadig afsenderens IP-adresse.
(2) Hvis X-Real-Ip har flere IP-værdier, for eksempel, sættes den tidligere proxy således: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;
Det, du får, er en række IP'er, så værdien af real_ip_recursive er afgørende lige nu. nginx vil sammenligne IP-adresserne i set_real_ip_from tillidslisten fra højre mod venstre i IP-listen. Hvis real_ip_recursive er forkert, mener man, at den næste IP (den anden til højre) er brugerens rigtige IP, når den højre IP findes at være en betroet IP. Hvis real_ip_recursive er tændt, vil den blive sammenlignet fra højre mod venstre, indtil den finder en ikke-betroet IP. Kopier derefter IP-værdien til $remote_addr også.
Ressourcer:
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
|