Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 15060|Vastaus: 0

[Web] Front-end nginx- ja back-end nginx -palvelin tallentavat alkuperäisen asiakkaan IP-osoitteen

[Kopioi linkki]
Julkaistu 3.11.2014 9.53.23 | | |

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.

Konfiguraatioesimerkki
set_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 frontendiinNginxLakkataiMustekalaofIPOsoite.

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.







Edellinen:nginx-välityspalvelintila, saat asiakkaan todellisen IP-osoitteen
Seuraava:Discuz! X3.1 Kaikki X3-versiot ohittavat liitteen latausluvan ilman krediittejä Rajaton lataushaavoittuvuus
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com