Vissa av våra gränssnitt innebär ändringar i användarinformation, och dessa gränssnitt tillåter bara åtkomstparten att justera oss, så vi har en IP-whitelist på nginx.
Den är utrustad med utgångs-IP för åtkomstparten.
Här är loggarna från vår nginx-åtkomst.
nginx tar vår $remote_addr som den riktiga IP:n, men i själva verket är $http_X_Forwarded_For användarens riktiga IP, $remote_addr är bara den privata nätverksadressen till vår f5 (användare -->f5 --> nginx), vilket resulterar i att nginx tar fel namn och användaren som justerar gränssnittet alltid är 403.
Lösning:
I http-modulen plus
set_real_ip_from 10.10.10.122; Säg åt nginx att hämta värdet av RealIP därifrån
real_ip_header X-Real-IP; Namnet på variabeln som lagrar RealIP-värdet
Kan!
Här börjar vi nginx-rapporten efter att ha lagt til:
nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26
Så vi lägger till realip-modulen och kompilerar nginx på nytt
1、cd /usr/local/nginx-1.6.3 2、./konfigurera --prefix=/usr/cmcc/nginx --med-http_stub_status_module --med-http_ssl_module --med-http_realip_module 3、Make & Make install
Tips:
1. set_real_ip_from avser den verkliga användar-IP som erhållits från vilken betrodd pre-proxy
2. real_ip_header avser användarens IP för den föregående proxyöverföringen, från vilken HTTP-delen av det mottagna meddelandet erhålls
3. real_ip_recursive Om man rekursivt utesluter tills användarens IP är erhållen (standard är avstängt)
Först specificerar real_ip_header ett http-headernamn, som som standard är X-Real-IP.
(1) Om det finns 1 IP kommer den att kontrollera om avsändarens IP finns i den betrodda IP-listan som anges av set_real_ip_from. Om den är betrodd kommer den att tro att IP-värdet i denna X-Real-IP är användarens verkliga IP-värde som angavs av den tidigare agenten, så den tilldelar detta värde till sin egen $remote_addr-variabel; Om det inte är betrodd kommer det inte att behandlas, och $remote_addr är fortfarande avsändarens IP-adress.
(2) Om X-Real-Ip har flera IP-värden, till exempel, sätts den föregående proxyn så här: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;
Det du får är en rad IP-adresser, så värdet av real_ip_recursive är avgörande just nu. nginx kommer att jämföra IP-adresserna i set_real_ip_from förtroendelista från höger till vänster i IP-listan. Om real_ip_recursive är avstängd, tror man, när den högra IP:n anses vara en betrodd IP, att nästa IP (den andra till höger) är användarens riktiga IP. Om real_ip_recursive är påslagen jämförs den från höger till vänster tills den hittar en icke-betrodd IP. Kopiera sedan IP-värdet till $remote_addr också.
Resurser:
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
|