|
Šis modulis ļauj mums mainīt klienta IP adreses vērtību klienta pieprasījuma galvenē (piemēram, X-Real-IP vai X-Forwarded-For). Šī funkcija ir ļoti noderīga Nginx serveriem, ja Nginx darbojas aiz dažiem 7. slāņa slodzes balansēšanas starpniekserveriem, jo klienta pieprasījuma vietējais IP (tas ir, klienta pieprasījuma adrese) tiek pievienots klienta IP adreses galvenei, šķērsojot 7. slāņa starpniekserveri, lai aizmugures sistēma Nginx varētu iegūt klienta IP adreses vērtību. Modulis nav instalēts pēc noklusējuma, tāpēc, ja vēlaties izmantot moduli, kompilējot instalāciju, jums jāpievieno opcija --with-http_realip_module. Šī moduļa izmantošanas iemesls ir tas, ka tas ļauj fona serverim ierakstīt sākotnējā klienta IP adresi. Konfigurācijas piemērsset_real_ip_from 192.168.1.0/24; set_real_ip_from 192.168.2.1; real_ip_header X-Real-IP;
Pirksti Pasūtīt Modulis sniedz tikai divas instrukcijas. Instrukcijas nosaukums: set_real_ip_from Funkcija: Uzticamas adreses norādīšana, izmantojot šo komandu, tiks aizstāta ar precīzu IP adresi. Uzticamas Unix ligzdas var izmantot arī no versijas 0.8.22. Šeit iestatītais IP attiecas uz frontendNginx、LakavaiKalmārinoIPAdrese. Sintakse: set_real_ip_from [adrese| CIDR|" unix:"] Noklusējuma vērtība: nav Lietošanas vide: http, serveris, atrašanās vieta Instrukcijas nosaukums: real_ip_header Funkcija: Šī komanda tiek izmantota, lai iestatītu, kuru galveni izmantot, lai aizstātu IP adresi. Ja tiek izmantots X-Forwarded-For, modulis aizstās priekšējā starpniekservera IP adresi ar pēdējo IP adresi galvenē X-Forwarded-For. Sintakse: real_ip_header [X-Real-IP| X-pārsūtīts] Noklusējuma vērtība: real_ip_header X-Real-IP Lietošanas vide: http, serveris, atrašanās vieta Lietošanas gadījumi Šajā piemērā mūsu vide ir šāda: ir divi Nginx serveri, viens ir frontend un otrs ir backend, frontend Nginx tiek izmantots kā starpniekserveris, un backend Nginx tiek izmantots, lai nodrošinātu piekļuvi lapai, un ir arī klients ar šādu IP adresi: Frontend Nginx: 192.168.7.10 Aizmugures Nginx: 192.168.1.15 Klienta resursdators: 218.239.201.36 Nginx konfigurācija priekšgalā izskatās šādi: serveris { klausīties 80; server_name www.xx.com;
atrašanās vieta / { saknes html; indeksa index.html index.htm; rakstzīmju komplekts UTF-8; }
atrašanās vieta /865 { proxy_pass http://192.168.3.139:80/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-pārsūtīts-$proxy_pievienot_x_pārsūtīts_for; proxy_set_header Host $host; proxy_redirect izslēgts; }
……
} Nginx konfigurācija aizmugures sistēmai ir šāda: serveris { klausīties 80; server_name localhost;
atrašanās vieta / { sakne /var/www/html; indeksa index.html index.htm; } Piekļuve testam Ja mēs piekļūstam http://www.xx.com/865, nav problēmu, tā var būt normāla piekļuve, piekļuves žurnāls ir šāds: Žurnāli no 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" Žurnāli no aizmugures 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" Mēs redzam, ka aizmugures Nginx žurnāli nereģistrē sākotnējā klienta IP adresi, bet gan frontend Nginx IP adresi. Ja modificējat fona Nginx servera konfigurāciju, lai: serveris { klausīties 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;
atrašanās vieta / { saknes html; indeksa index.html index.htm; }
……
}
Tad mēs vēlreiz veicam piekļuves testu: Žurnāli no 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" Žurnāli no aizmugures 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" Var redzēt, ka šoreiz fonā tiek reģistrēta klienta IP adrese.
|