Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 17771|Odpoveď: 1

[Web] nginx získava skutočnú IP adresu používateľa

[Kopírovať odkaz]
Zverejnené 19. 5. 2018 11:38:55 | | | |
Niektoré naše rozhrania zahŕňajú zmeny v používateľských údajoch a tieto rozhrania umožňujú len prístupovej strane nás prispôsobovať, takže máme IP whitelist na nginx.

Je vybavený výstupnou IP adresou prístupovej strany.

Tu sú záznamy z nášho prístupu k nginx.



nginx berie našu $remote_addr ako skutočnú IP, ale v skutočnosti je $http_X_Forwarded_For skutočná IP používateľa, $remote_addr je len súkromná sieťová adresa nášho F5 (používateľ -->f5 --> nginx), čo spôsobuje, že nginx používa nesprávne meno a používateľ upravujúci rozhranie je vždy 403.

Riešenie:

V HTTP module plus


set_real_ip_from 10.10.10.122; Povedz nginx, aby získal hodnotu RealIP odtiaľ
real_ip_header X-Real-IP; Názov premennej, ktorá ukladá hodnotu RealIP

Môcť!

Tu začíname správu nginx po pridaní:

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




Takže pridáme modul realip a prekompilujeme 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 skutočnú používateľskú IP získanú od ktorej dôveryhodný pre-proxy

2. real_ip_header označuje používateľskú IP adresu predchádzajúceho proxy prenosu, z ktorého sa získava HTTP časť prijatej správy

3. real_ip_recursive Či rekurzívne vylučovať, kým sa nezíska používateľská IP adresa (predvolené nastavenie je vypnuté)

Najprv real_ip_header špecifikovať názov HTTP hlavičky, ktorý je predvolene X-Real-IP.

(1) Ak je k dispozícii 1 IP adresa, skontroluje, či je IP odosielateľa v zozname dôveryhodných IP iv určených set_real_ip_from. Ak je dôveryhodný, bude si myslieť, že IP hodnota v tejto X-Real-IP je skutočná IP hodnota používateľa, ktorú povedal bývalý agent, a preto túto hodnotu priradí svojej vlastnej $remote_addr premennej; Ak nie je dôveryhodný, nebude spracovaný a $remote_addr je stále IP adresa odosielateľa.

(2) Ak má napríklad X-Real-Ip viacero IP hodnôt, predchádzajúci proxy je nastavený takto: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;

Dostanete reťazec IP, takže hodnota real_ip_recursive je v tomto čase kľúčová. nginx porovná IP adresy v set_real_ip_from zozname dôvery sprava doľava v zozname IP. Ak je real_ip_recursive nesprávna, potom keď sa zistí, že pravá IP je dôveryhodná, predpokladá sa, že ďalšia IP (druhá napravo) je skutočná IP používateľa. Ak je real_ip_recursive zapnutý, porovná sa sprava doľava, kým nenájde nedôveryhodnú IP adresu. Potom skopírujte IP hodnotu aj do $remote_addr.

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





Predchádzajúci:Mapy lokalít Discuz sa generujú automaticky
Budúci:Použite Alibaba Cloud load balancing na blokovanie IP prístupu k webovým stránkam
Zverejnené 18. 6. 2018 14:57:50 |
Pozri, nginx dostane skutočnú IP
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com