|
Tämä moduuli mahdollistaa asiakkaan IP-osoitteen arvon muuttamisen asiakaspyynnön otsikossa (esim. X-Real-IP tai X-Forwarded-For). Tämä ominaisuus on erittäin hyödyllinen Nginx-palvelimille, jos Nginx toimii joidenkin Layer 7 -kuormantasausvälityspalvelimien takana, koska asiakaspyynnön paikallinen IP (eli asiakkaan pyyntöosoite) lisätään asiakkaan IP-osoitteen otsikkeeseen, kun se kulkee Layer 7 -välityspalvelimen läpi, jolloin taustajärjestelmän Nginx voi saada asiakkaan IP-osoitearvon. Moduulia ei asenneta oletuksena, joten jos haluat käyttää moduulia, sinun täytyy lisätä --with-http_realip_module -vaihtoehto käännöksen yhteydessä. Tämän moduulin käyttö on se, että taustapalvelimen voi tallentaa alkuperäisen asiakkaan IP-osoitteen. Konfiguraatioesimerkkiset_real_ip_from 192.168.1.0/24; set_real_ip_from 192.168.2.1; real_ip_header X-Real-IP;
Sormet Järjestys Moduuli tarjoaa vain kaksi käskyä. Ohjeen nimi: set_real_ip_from Toiminto: Luotetun osoitteen määrittäminen tällä komennolla korvataan tarkalla IP-osoitteella. Luotettuja Unix-soketteja voi käyttää myös versiosta 0.8.22 eteenpäin. Tässä IP-joukko viittaa frontendiinNginx、LakkataiMustekalaofIPOsoite. Syntaksi: set_real_ip_from [osoite| CIDR|" Unix:"] Oletusarvo: ei mitään Käyttöympäristö: http, palvelin, sijainti Ohjeen nimi: real_ip_header Toiminto: Tätä komentoa käytetään asettamaan, mitä otsikkoa käytetään korvaamaan IP-osoite. Jos X-Forwarded-For -toimintoa käytetään, moduuli korvaa etupään välityspalvelimen IP-osoitteen viimeisellä IP-osoitteella X-Forwarded-For -otsikossa. Syntaksi: real_ip_header [X-Real-IP| X-Forwarded-For] Oletusarvo: real_ip_header X-Real-IP Käyttöympäristö: http, palvelin, sijainti Käyttötapaukset Seuraavassa esimerkissä ympäristömme on tällainen: on kaksi Nginx-palvelinta, toinen on frontend ja toinen backend, frontend-Nginx toimii välityspalvelimena ja backend-Nginx tarjoaa sivun pääsyn, ja lisäksi on asiakas, jolla on seuraava IP-osoite: Frontend Nginx: 192.168.7.10 Backend Nginx: 192.168.1.15 Asiakaspalvelin: 218.239.201.36 Nginx-kokoonpano frontendissä näyttää tältä: palvelin { kuuntele 80; server_name www.xx.com;
sijainti / { root html; indeksi index.html index.htm; Charset UTF-8; }
sijainti /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 Juontaja $host; proxy_redirect pois; }
……
} Nginx-konfiguraatio taustajärjestelmälle on seuraava: palvelin { kuuntele 80; server_name paikallisjuontaja;
sijainti / { root /var/www/html; indeksi index.html index.htm; } Pääsy testiin Jos pääsemme http://www.xx.com/865:lle, ei ongelmaa, se voi olla normaali pääsy, pääsyloki on seuraava: Lokitiedostoja frontend Nginxistä: 218.239.201.36 - - [30.8.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" Lokitiedostoja taustajärjestelmästä Nginx: 192.168.7.10 - - [30.8.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äemme, että taustan Nginx-lokit eivät tallenna alkuperäisen asiakkaan IP-osoitetta, vaan frontend-Nginxin IP-osoitetta. Jos muokkaat taustalla olevan Nginx-palvelimen konfiguraatiota seuraavasti: palvelin { kuuntele 80; server_name paikallisjuontaja; set_real_ip_from 192.168.3.0/24; set_real_ip_from 100.100.0.0/16; real_ip_header X-Real-IP;
sijainti / { root html; indeksi index.html index.htm; }
……
}
Sitten teemme käyttöoikeuden testin uudelleen: Lokitiedostoja frontend Nginxistä: 218.239.201.36 - - [30.8.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" Lokitiedostoja taustajärjestelmästä Nginx: 218.239.201.36 - - [30.8.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" Tällä kertaa taustalla tallennetaan asiakkaan IP-osoite.
|