Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 15060|Odgovoriti: 0

[Web] Sprednji in zadnji nginx strežnik beležita IP naslov izvirnega odjemalca

[Kopiraj povezavo]
Objavljeno na 3. 11. 2014 09:53:23 | | |

Ta modul nam omogoča spreminjanje vrednosti IP naslova odjemalca v glavi zahteve odjemalca (npr. X-Real-IP ali X-Forwarded-For).

    Ta funkcija je zelo uporabna za Nginx strežnike, če Nginx deluje za nekaterimi Layer 7 proxy strežniki za uravnoteženje obremenitve, saj se lokalni IP zahteve odjemalca (torej naslov zahteve odjemalca) doda glavi IP naslova odjemalca, ko gre skozi proxy, tako da lahko Nginx v zaledju pridobi vrednost IP naslova odjemalca. Modul ni privzeto nameščen, zato če želite modul uporabljati, morate ob prevajanju namestitve dodati možnost --z-http_realip_module.

    Razlog za uporabo tega modula je, da omogoča strežniku v ozadju, da zabeleži IP naslov izvirnega odjemalca.

Primer konfiguracije
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Prsti    Red

   Modul ponuja le dve navodili.

Ime ukaza: set_real_ip_from

Funkcija: Določitev zaupanja vrednega naslova s tem ukazom bo zamenjana z natančnim IP naslovom. Zaupanja vredne Unix vtičnice je mogoče uporabljati tudi od različice 0.8.22 naprej. IP nabor tukaj se nanaša na frontendNginxLakaliLignjodIPNaslov.

Sintaksa: set_real_ip_from [naslov| CIDR|" UNIX:"]

Privzeta vrednost: ni

Uporabniško okolje: http, strežnik, lokacija

Ime navodil: real_ip_header

Funkcija: Ta ukaz se uporablja za določitev, katero glavo uporabiti za zamenjavo IP naslova. Če se uporablja X-Forwarded-For, modul nadomesti IP naslov sprednjega proxyja z zadnjim IP naslovom v glavi X-Forwarded-For.

Sintaksa: real_ip_header [X-Real-IP| X-posredovano]

Privzeta vrednost: real_ip_header X-Real-IP

Uporabniško okolje: http, strežnik, lokacija

Primeri uporabe   

    V naslednjem primeru je naše okolje takšno: obstajata dva Nginx strežnika, eden je frontend, drugi backend, frontend Nginx se uporablja kot proxy, backend Nginx pa za dostop do strani, prav tako pa je tu odjemalec z naslednjim IP naslovom:

  

    Frontend Nginx: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Odjemalski gostitelj: 218.239.201.36

    Nginx konfiguracija na frontendu izgleda takole:

Server {
  poslušaj 80;
  server_name www.xx.com;

Lokacija / {
    root html;
    indeks index.html index.htm;
Charset utf-8;
  }

lokacija /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Posredovano-Za $proxy_dodaj_x_posredovano_za;
proxy_set_header voditelj $host;
    proxy_redirect stran;
  }

……
}

Nginx konfiguracija za backend je naslednja:

Server {
  poslušaj 80;
  server_name lokalnega voditelja;

  Lokacija / {
    koren /var/www/html;
    indeks index.html index.htm;
  }

Dostop do testa

    Če dostopamo do http://www.xx.com/865, ni problema, lahko gre za običajen dostop, dnevnik dostopa je naslednji:

    Dnevniki s frontenda Nginx:

218.239.201.36 - - [30/avg/2011:16:09:56 +0800] "GET /865/ HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-ZDA; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Dnevniki iz backenda Nginx:

192.168.7.10 - - [30/Avg/2011:16:09:56 +0800] "GET // HTTP/1.0" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-ZDA; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Vidimo, da backend Nginx dnevniki ne beležijo IP naslova izvirnega odjemalca, temveč IP naslova frontend Nginx.

    Če spremenite konfiguracijo ozadnega Nginx strežnika v:

Server {
  poslušaj 80;
  server_name lokalnega voditelja;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  Lokacija / {
    root html;
    indeks index.html index.htm;
  }

    ……
}

Nato ponovno izvedemo test dostopa:

    Dnevniki s frontenda Nginx:

218.239.201.36 - - [30/Avg/2011:16:10:28 +0800 "GET /865/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-ZDA; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

     Dnevniki iz backenda Nginx:

218.239.201.36 - - [30/avg/2011:16:10:28 +0800] "GET // HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-ZDA; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Vidimo lahko, da tokrat ozadje beleži IP naslov odjemalca.







Prejšnji:nginx proxy način, pridobiti pravi IP naslov odjemalca
Naslednji:Discuz! X3.1 Vse različice X3 obidejo dovoljenje za prenos prilog brez kreditov Ranljivost za neomejen prenos
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com