|
Šis modulis leidžia mums pakeisti kliento IP adreso reikšmę kliento užklausos antraštėje (pvz., X-Real-IP arba X-Forwarded-For). Ši funkcija yra labai naudinga "Nginx" serveriams, jei "Nginx" veikia už kai kurių 7 lygmens apkrovos balansavimo tarpinių serverių, nes vietinis kliento užklausos IP (tai yra kliento užklausos adresas) pridedamas prie kliento IP adreso antraštės, kai pereinama per 7 lygmens tarpinį serverį, kad galinė "Nginx" galėtų gauti kliento IP adreso reikšmę. Modulis nėra įdiegtas pagal numatytuosius nustatymus, todėl jei norite naudoti modulį, kompiliuodami diegimą turite pridėti parinktį --with-http_realip_module. Šio modulio naudojimo priežastis yra ta, kad jis leidžia foniniam serveriui įrašyti pradinio kliento IP adresą. Konfigūracijos pavyzdysset_real_ip_from 192.168.1.0/24; set_real_ip_from 192.168.2.1; real_ip_header X-Real-IP;
Pirštai Užsakyti Modulyje pateikiamos tik dvi instrukcijos. Instrukcijos pavadinimas: set_real_ip_from Funkcija: Patikimo adreso nurodymas naudojant šią komandą bus pakeistas tiksliu IP adresu. Patikimi Unix lizdai taip pat gali būti naudojami nuo 0.8.22 versijos. Čia nustatytas IP nurodo sąsająNginx、LakasarbaKalmaraiišIPAdresas. Sintaksė: set_real_ip_from [adresas| CIDR|" unix:"] Numatytoji reikšmė: nėra Naudojimo aplinka: http, serveris, vieta Instrukcijos pavadinimas: real_ip_header Funkcija: Ši komanda naudojama norint nustatyti, kurią antraštę naudoti IP adresui pakeisti. Jei naudojamas X-Forwarded-For, modulis pakeis išorinio tarpinio serverio IP adresą paskutiniu IP adresu X-Forwarded-For antraštėje. Sintaksė: real_ip_header [X-Real-IP| X-persiųsta] Numatytoji reikšmė: real_ip_header X-Real-IP Naudojimo aplinka: http, serveris, vieta Naudojimo atvejai Šiame pavyzdyje mūsų aplinka yra tokia: yra du "Nginx" serveriai, vienas yra priekinė dalis, o kitas - užpakalinė dalis, priekinė dalis "Nginx" naudojama kaip tarpinis serveris, o užpakalinė dalis "Nginx" naudojama prieigai prie puslapio suteikti, taip pat yra klientas su šiuo IP adresu: Priekinė dalis: 192.168.7.10 Užpakalinė dalis: 192.168.1.15 Kliento pagrindinis kompiuteris: 218.239.201.36 "Nginx" konfigūracija priekinėje dalyje atrodo taip: serveris { klausytis 80; server_name www.xx.com;
vieta / { šaknis html; indekso index.html index.htm; simbolių rinkinys UTF-8; }
Vieta /865 { proxy_pass http://192.168.3.139:80/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect išjungti; }
……
} Galinės sistemos "Nginx" konfigūracija yra tokia: serveris { klausytis 80; server_name localhost;
vieta / { šaknis /var/www/html; indekso index.html index.htm; } Prieiga prie testo Jei pasieksime http://www.xx.com/865, jokių problemų, tai gali būti įprasta prieiga, prieigos žurnalas yra toks: Žurnalai iš frontend Nginx: 218.239.201.36 - - [30/Aug/2011:16:09:56 +0800] "GET /865/ HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1" Žurnalai iš backend Nginx: 192.168.7.10 - - [30/Aug/2011:16:09:56 +0800] "GET // HTTP/1.0" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1" Matome, kad galiniuose "Nginx" žurnaluose įrašomas ne pradinio kliento IP adresas, o priekinės dalies "Nginx" IP adresas. Jei pakeisite foninio "Nginx" serverio konfigūraciją, kad: serveris { klausytis 80; server_name localhost; set_real_ip_from 192.168.3.0/24; set_real_ip_from 100.100.0.0/16; real_ip_header X-Real-IP;
vieta / { šaknis html; indekso index.html index.htm; }
……
}
Tada dar kartą atliekame prieigos testą: Žurnalai iš frontend Nginx: 218.239.201.36 - - [30/Aug/2011:16:10:28 +0800 "GET /865/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1" Žurnalai iš backend Nginx: 218.239.201.36 - - [30/Aug/2011:16:10:28 +0800] "GET // HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1" Galima pastebėti, kad šį kartą fone įrašomas kliento IP adresas.
|