|
See moodul võimaldab meil muuta kliendi IP-aadressi väärtust kliendipäringu päises (nt X-Real-IP või X-Forwarded-For). See funktsioon on väga kasulik Nginx serverite jaoks, kui Nginx töötab mõne 7. kihi koormuse tasakaalustamise prokside taga, sest kliendi päringu kohalik IP (ehk kliendi päringu aadress) lisatakse kliendi IP-aadressi päisse, kui see läbib Layer 7 proksi, nii et taustaosa Nginx saab kliendi IP-aadressi väärtuse. Moodul ei ole vaikimisi paigaldatud, nii et kui tahad moodulit kasutada, pead kompileerimisel lisama --with-http_realip_module valiku. Selle mooduli kasutamise põhjus on see, et see võimaldab taustaserveril salvestada algse kliendi IP-aadressi. Konfiguratsiooni näideset_real_ip_from 192.168.1.0/24; set_real_ip_from 192.168.2.1; real_ip_header X-Real-IP;
Sõrmed Järjekord Moodul annab ainult kahte käsku. Juhendi nimi: set_real_ip_from Funktsioon: Usaldusväärse aadressi määramine selle käsuga asendatakse täpse IP-aadressiga. Usaldusväärseid Unix sokleid saab kasutada ka alates versioonist 0.8.22. IP-komplekt viitab siin frontendileNginx、LakkvõiKalmaarofIPAadress. Süntaks: set_real_ip_from [aadress| CIDR|" Unix:"] Vaikimisi väärtus: puudub Kasutuskeskkond: http, server, asukoht Juhendi nimi: real_ip_header Funktsioon: Seda käsku kasutatakse selleks, et määrata, millist päist IP-aadressi asendada. Kui kasutatakse X-Forwarded-For'i, asendab moodul esipaneeli proxy IP-aadressi viimase IP-aadressiga X-Forwarded-For päises. Süntaks: real_ip_header [X-Real-IP| X-Edasi suunatud] Vaikimisi väärtus: real_ip_header X-Real-IP Kasutuskeskkond: http, server, asukoht Kasutusjuhtumid Järgmises näites on meie keskkond selline: on kaks Nginx serverit, üks on frontend ja teine backend, frontend Nginx on proxy ja backend Nginx võimaldab lehekülgedele ligipääsu ning on olemas ka klient järgmise IP-aadressiga: Frontend Nginx: 192.168.7.10 Backend Nginx: 192.168.1.15 Kliendi host: 218.239.201.36 Nginxi konfiguratsioon esiküljel näeb välja selline: Server { kuula 80; server_name www.xx.com;
asukoht / { root html; indeks index.html index.htm; charset UTF-8; }
asukoht /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 Saatejuht $host; proxy_redirect ära; }
……
} Nginxi konfiguratsioon taustale on järgmine: Server { kuula 80; server_name kohalik saatejuht;
asukoht / { juur /var/www/html; indeks index.html index.htm; } Juurdepääs testile Kui me pääseme http://www.xx.com/865 ligi, pole probleemi, see võib olla tavaline ligipääs, ligipääsu logi on järgmine: Logid frontend Nginxist: 218.239.201.36 - - [30/august/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" Logid taustast 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" Näeme, et tausta Nginx logid ei salvesta algse kliendi IP-aadressi, vaid frontendi Nginxi IP-aadressi. Kui muudate taustal oleva Nginx serveri konfiguratsiooni järgmiselt: Server { kuula 80; server_name kohalik saatejuht; set_real_ip_from 192.168.3.0/24; set_real_ip_from 100.100.0.0/16; real_ip_header X-Real-IP;
asukoht / { root html; indeks index.html index.htm; }
……
}
Seejärel teeme ligipääsutesti uuesti: Logid frontend Nginxist: 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" Logid taustast 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" On näha, et seekord salvestab taust kliendi IP-aadressi.
|