Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 17771|Odpověď: 1

[Web] nginx získává skutečnou IP adresu uživatele

[Kopírovat odkaz]
Zveřejněno 19.05.2018 11:38:55 | | | |
Některá naše rozhraní zahrnují změny v uživatelských informacích, a tato rozhraní umožňují upravovat pouze přístupovou stranu, takže máme na nginx whitelist IP.

Je vybaven výstupní IP adresou přístupové strany.

Tady jsou záznamy z našeho přístupu nginx.



nginx bere náš $remote_addr jako skutečnou IP, ale ve skutečnosti je $http_X_Forwarded_For skutečná IP uživatele, $remote_addr je jen soukromá síťová adresa našeho F5 (uživatel -->f5 --> nginx), což vede k tomu, že nginx převezme špatné jméno a uživatel upravuje rozhraní vždy jako 403.

Řešení:

V HTTP modulu plus


set_real_ip_from 10.10.10.122; Řekni nginx, aby tam získal hodnotu RealIP
real_ip_header X-Real-IP; Název proměnné, která ukládá hodnotu RealIP

Konev!

Zde začínáme zprávu nginx po přidání:

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




Takže přidáme modul realip a překompilujeme nginx


1、cd /usr/local/nginx-1.6.3
2、./configure --prefix=/usr/cmcc/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
3、Make & Make install

Tipy:
1. set_real_ip_from označuje skutečné uživatelské IP získané od důvěryhodného pre-proxy

2. real_ip_header označuje uživatelskou IP předchozího proxy přenosu, ze kterého byla získána HTTP část přijaté zprávy

3. real_ip_recursive Zda rekurzivně vylučovat, dokud není získána uživatelská IP adresa (výchozí nastavení je vypnuto)

Nejprve real_ip_header specifikovat název hlavičky http, což je ve výchozím nastavení X-Real-IP.

(1) Pokud je k dispozici 1 IP, zkontroluje, zda je IP odesílatele v seznamu důvěryhodných IP adres určených set_real_ip_from. Pokud je důvěryhodný, bude si myslet, že IP hodnota v této X-Real-IP je skutečná IP hodnota uživatele uvedená bývalým agentem, takže tuto hodnotu přiřadí své vlastní proměnné $remote_addr; Pokud není důvěryhodný, nebude zpracován a $remote_addr je stále IP adresa odesílatele.

(2) Pokud má X-Real-Ip například více IP hodnot, předchozí proxy je nastaveno takto: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;

Dostanete řetězec IP adres, takže hodnota real_ip_recursive je v tuto chvíli zásadní. nginx porovná IP adresy v seznamu důvěry set_real_ip_from zprava doleva v seznamu IP. Pokud je real_ip_recursive nesprávný, pak když se zjistí, že nejpravější IP je důvěryhodná, předpokládá se, že další IP (druhá vpravo je) je skutečná IP uživatele. Pokud je real_ip_recursive zapnutý, bude porovnáván zprava doleva, dokud nenajde nedůvěryhodnou IP adresu. Pak zkopírujte IP hodnotu i do $remote_addr.

Prostředky:
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





Předchozí:Mapy stránek Discuz jsou generovány automaticky
Další:Použijte Alibaba Cloud load balancing k blokování IP přístupu k webům
Zveřejněno 18.06.2018 14:57:50 |
Podívej, nginx získává skutečnou IP
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com