Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 17771|Svar: 1

[Web] nginx får användarens verkliga IP-adress

[Kopiera länk]
Publicerad på 2018-05-19 11:38:55 | | | |
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





Föregående:Discuz-sitemaps genereras automatiskt
Nästa:Använd Alibaba Cloud lastbalansering för att blockera IP-åtkomst till webbplatser
Publicerad på 2018-06-18 14:57:50 |
Lyssna, nginx får den riktiga IP:n
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com