Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 15060|Odpověď: 0

[Web] Front-end nginx a back-end nginx server zaznamenávají IP adresu původního klienta

[Kopírovat odkaz]
Zveřejněno 03.11.2014 9:53:23 | | |

Tento modul nám umožňuje měnit hodnotu IP adresy klienta v hlavičce požadavku klienta (např. X-Real-IP nebo X-Forwarded-For).

    Tato funkce je velmi užitečná pro servery Nginx, pokud Nginx pracuje za některými proxy servery pro vyrovnání zátěže vrstvy 7, protože lokální IP požadavku klienta (tedy adresa požadavku klienta) je přidána do hlavičky IP adresy klienta při průchodu přes proxy vrstvy 7, takže backend Nginx může získat hodnotu IP adresy klienta. Modul není ve výchozím nastavení nainstalován, takže pokud ho chcete používat, musíte při kompilaci instalace přidat možnost --with-http_realip_module.

    Důvodem použití tohoto modulu je, že umožňuje serveru na pozadí zaznamenat IP adresu původního klienta.

Příklad konfigurace
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Prsty    Řád

   Modul poskytuje pouze dvě instrukce.

Název instrukce: set_real_ip_from

Funkce: Zadání důvěryhodné adresy tímto příkazem bude nahrazeno přesnou IP adresou. Důvěryhodné Unixové sockety lze také používat od verze 0.8.22 dále. Zde se IP sada vztahuje na frontendNginxLakneboSépiezIPAdresa.

Syntaxe: set_real_ip_from [adresa| CIDR|" unix:"]

Výchozí hodnota: žádná

Prostředí použití: http, server, lokalita

Název instrukce: real_ip_header

Funkce: Tento příkaz slouží k nastavení, kterou hlavičku použít k nahrazení IP adresy. Pokud je použit X-Forwarded-For, modul nahradí IP adresu front-end proxy poslední IP adresou v hlavičce X-Forwarded-For.

Syntaxe: real_ip_header [X-Real-IP| X-Přeposíleno]

Výchozí hodnota: real_ip_header X-Real-IP

Prostředí použití: http, server, lokalita

Případy použití   

    V následujícím příkladu je naše prostředí takovéto: existují dva servery Nginx, jeden je frontend a druhý backend, frontend Nginx slouží jako proxy, backend Nginx poskytuje přístup ke stránkám, a je zde také klient s následující IP adresou:

  

    Frontend Nginx: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Klientský hostitel: 218.239.201.36

    Konfigurace Nginx na frontendu vypadá takto:

server {
  Listen 80;
  server_name www.xx.com;

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

Místo /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Přeposíleno-Pro $proxy_add_x_forwarded_for;
proxy_set_header moderátor $host;
    proxy_redirect pryč;
  }

……
}

Konfigurace Nginx pro backend je následující:

server {
  Listen 80;
  server_name místního moderátora;

  Poloha / {
    kořen /var/www/html;
    index index.html index.htm;
  }

Přístup k testu

    Pokud přistupujeme k http://www.xx.com/865, žádný problém, může to být normální přístup, přístupový log je následující:

    Logy z frontendu Nginx:

218.239.201.36 - - [30/srp/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"

Logy z backendu Nginx:

192.168.7.10 - [30/srp/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"

Vidíme, že backendové logy Nginx nezaznamenávají IP adresu původního klienta, ale IP adresu frontendového Nginx.

    Pokud upravíte konfiguraci serveru Nginx na pozadí:

server {
  Listen 80;
  server_name místního moderátora;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  Poloha / {
    root html;
    index index.html index.htm;
  }

    ……
}

Pak znovu provedeme test přístupu:

    Logy z frontendu Nginx:

218.239.201.36 - - [30/srp/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"

     Logy z backendu Nginx:

218.239.201.36 - - [30/srp/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"

Je vidět, že tentokrát pozadí zaznamenává IP adresu klienta.







Předchozí:nginx proxy režim, získat skutečnou IP adresu klienta
Další:Rozkaz! X3.1 Všechny verze X3 obcházejí povolení ke stažení příloh bez kreditů Zranitelnost neomezeného stahování
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com