Nekateri naši vmesniki vključujejo spremembe uporabniških podatkov, ti vmesniki pa omogočajo prilagajanje le dostopni strani, zato imamo IP seznam dovoljenih na nginx.
Opremljen je z izhodnim IP-jem dostopne strani.
Tukaj so zapisi iz našega dostopa do nginx.
nginx vzame naš $remote_addr kot pravi IP, vendar je v resnici $http_X_Forwarded_For pravi IP uporabnika, $remote_addr pa je le zasebni omrežni naslov našega F5 (uporabnik -->f5 --> nginx), zaradi česar nginx prevzame napačno ime in uporabnik, ki prilagaja vmesnik, je vedno 403.
Rešitev:
V http modulu plus
set_real_ip_from 10.10.10.122; Povej nginx, naj od tam dobi vrednost RealIP
real_ip_header X-Real-IP; Ime spremenljivke, ki shranjuje vrednost RealIP
Moči!
Tukaj začnemo z nginx poročilom po dodajanju:
nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26
Torej dodamo modul realip in ponovno prevedemo 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
Nasveti:
1. set_real_ip_from se nanaša na IP dejanskega uporabnika, pridobljenega od katerega zaupanja vreden pre-proxy
2. real_ip_header se nanaša na uporabniški IP prejšnjega proxy prenosa, iz katerega je pridobljen HTTP del prejetega sporočila
3. real_ip_recursive Ali rekurzivno izključiti, dokler ni pridobljen uporabniški IP (privzeto je izklopljeno)
Najprej real_ip_header določiti ime HTTP glave, ki je privzeto X-Real-IP.
(1) Če je na voljo 1 IP, bo preveril, ali je IP pošiljatelja na seznamu zaupanja vrednih IP, ki jih določi set_real_ip_from. Če je zaupanja vreden, bo mislil, da je IP vrednost v tem X-Real-IP prava IP vrednost uporabnika, ki jo je povedal nekdanji agent, zato bo to vrednost dodelil svoji spremenljivki $remote_addr; Če ni zaupanja vreden, ne bo obdelan, $remote_addr pa je še vedno IP naslov pošiljatelja.
(2) Če ima X-Real-Ip na primer več IP vrednosti, je prejšnji proxy nastavljen takole: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;
Dobite niz IP-jev, zato je vrednost real_ip_recursive trenutno ključna. nginx bo primerjal IP-naslove na seznamu zaupanja set_real_ip_from od desne proti levi na seznamu IP-jev. Če je real_ip_recursive napačen, potem ko se ugotovi, da je najbolj desni IP zaupanja vreden, se misli, da je naslednji IP (drugi na desni) pravi IP uporabnika. Če je real_ip_recursive vklopljen, ga primerjamo z desne proti levi, dokler ne najde zaupanja vrednega IP-ja. Nato kopiraj IP vrednost tudi v $remote_addr.
Sredstva:
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
|