Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 15060|Odpoveď: 0

[Web] Front-end nginx a back-end nginx server zaznamenáva IP adresu pôvodného klienta

[Kopírovať odkaz]
Zverejnené 3. 11. 2014 9:53:23 | | |

Tento modul nám umožňuje meniť hodnotu IP adresy klienta v hlavičke požiadavky klienta (napr. X-Real-IP alebo X-Forwarded-For).

    Táto funkcia je veľmi užitočná pre servery Nginx, ak Nginx pracuje za niektorými proxy servermi na vyvažovanie záťaže vrstvy 7, pretože lokálna IP adresa požiadavky klienta (teda adresa požiadavky klienta) sa pridáva do hlavičky IP adresy klienta pri prechode cez proxy vrstvy 7, aby backendový Nginx mohol získať hodnotu IP adresy klienta. Modul nie je predvolene nainštalovaný, takže ak ho chcete používať, musíte pri kompilácii pridať možnosť --with-http_realip_module.

    Dôvodom použitia tohto modulu je, že umožňuje serveru na pozadí zaznamenať IP adresu pôvodného klienta.

Príklad konfigurácie
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Prsty    Poradie

   Modul poskytuje iba dve inštrukcie.

Názov inštrukcie: set_real_ip_from

Funkcia: Zadanie dôveryhodnej adresy týmto príkazom bude nahradené presnou IP adresou. Dôveryhodné Unix sockety je možné používať aj od verzie 0.8.22. Množina IP tu odkazuje na frontendNginxLakaleboChobotnicazIPAdresa.

Syntax: set_real_ip_from [adresa| CIDR|" UNIX:"]

Predvolená hodnota: žiadna

Prostredie používania: http, server, lokalita

Názov inštrukcie: real_ip_header

Funkcia: Tento príkaz sa používa na nastavenie, ktorá hlavička sa použije na nahradenie IP adresy. Ak sa použije X-Forwarded-For, modul nahradí IP adresu front-end proxy poslednou IP adresou v hlavičke X-Forwarded-For.

Syntax: real_ip_header [X-Real-IP| X-Preposlané]

Predvolená hodnota: real_ip_header X-Real-IP

Prostredie používania: http, server, lokalita

Prípady použitia   

    V nasledujúcom príklade je naše prostredie takéto: existujú dva Nginx servery, jeden je frontend a druhý backend, frontend Nginx slúži ako proxy, backend Nginx poskytuje prístup na stránku, a je tu aj klient s nasledujúcou IP adresou:

  

    Frontend Nginx: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Klientský hostiteľ: 218.239.201.36

    Konfigurácia Nginx na frontende vyzerá takto:

server {
  počúvať 80;
  server_name www.xx.com;

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

location /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 Moderátor $host;
    proxy_redirect dole;
  }

……
}

Konfigurácia Nginx pre backend je nasledovná:

server {
  počúvať 80;
  server_name miestneho moderátora;

  Umiestnenie / {
    root /var/www/html;
    index index.html index.htm;
  }

Prístup k testu

    Ak pristupujeme k http://www.xx.com/865, žiadny problém, môže to byť bežný prístup, prístupový log je nasledovný:

    Logy z frontendu 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"

Záznamy z backendu 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"

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

    Ak upravíte konfiguráciu pozadia Nginx servera na:

server {
  počúvať 80;
  server_name miestneho 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;

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

    ……
}

Potom opäť urobíme test prístupu:

    Logy z frontendu 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"

     Záznamy z backendu 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"

Je vidieť, že tentoraz pozadie zaznamenáva IP adresu klienta.







Predchádzajúci:nginx proxy režim, získajte skutočnú IP adresu klienta
Budúci:! X3.1 Všetky verzie X3 obchádzajú povolenie na sťahovanie príloh bez kreditov Zraniteľnosť v neobmedzenom sťahovaní
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com