Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 15060|Svar: 0

[Web] Front-end nginx og back-end nginx-serveren registrerer IP-adressen på den oprindelige klient

[Kopier link]
Opslået på 03/11/2014 09.53.23 | | |

Dette modul giver os mulighed for at ændre værdien af klientens IP-adresse i klientanmodningsheaderen (f.eks. X-Real-IP eller X-Forwarded-For).

    Denne funktion er meget nyttig for Nginx-servere, hvis Nginx fungerer bag nogle Layer 7 load balancing proxies, fordi den lokale IP på klientforespørgslen (det vil sige klientens anmodningsadresse) tilføjes til klientens IP-adresseheader, når den passerer gennem Layer 7-proxyen, så backend Nginx kan få fat i klientens IP-adresseværdi. Modulet er ikke installeret som standard, så hvis du vil bruge modulet, skal du tilføje --with-http_realip_module-muligheden, når du kompilerer installationen.

    Grunden til at bruge dette modul er, at det tillader baggrundsserveren at registrere IP-adressen på den oprindelige klient.

Konfigurationseksempel
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Fingre    Orden

   Modulet indeholder kun to instruktioner.

Instruktionsnavn: set_real_ip_from

Funktion: Angivelse af en betroet adresse via denne kommando vil blive erstattet med en præcis IP-adresse. Trusted Unix-sockets kan også bruges fra version 0.8.22 og frem. IP-sættet her refererer til frontendNginxLakellerBlæksprutteafIPAdresse.

Syntaks: set_real_ip_from [adressen| CIDR|" unix:"]

Standardværdi: ingen

Brugsmiljø: http, server, lokation

Instruktionsnavn: real_ip_header

Funktion: Denne kommando bruges til at sætte hvilken header der skal bruges til at erstatte IP-adressen. Hvis X-Forwarded-For bruges, vil modulet erstatte IP-adressen på front-end proxyen med den sidste IP-adresse i X-Forwarded-For-headeren.

Syntaks: real_ip_header [X-Real-IP| X-Videresendt-For]

Standardværdi: real_ip_header X-Real-IP

Brugsmiljø: http, server, lokation

Brugsscenarier   

    I det følgende eksempel er vores miljø sådan her: der er to Nginx-servere, den ene er frontend og den anden backend, frontend Nginx bruges som proxy, og backend Nginx bruges til at give sideadgang, og der er også en klient med følgende IP-adresse:

  

    Frontend Nginx: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Klientvært: 218.239.201.36

    Nginx-konfigurationen på frontenden ser sådan ud:

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

Beliggenhed / {
    root html;
    indeks index.html index.htm;
Charset UTF-8;
  }

placering /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-videresendt-for $proxy_add_x_forwarded_for;
proxy_set_header Vært $host;
    proxy_redirect væk;
  }

……
}

Nginx-konfigurationen for backend er som følger:

server {
  lyt 80;
  server_name lokalvært;

  Beliggenhed / {
    rod /var/www/html;
    indeks index.html index.htm;
  }

Få adgang til testen

    Hvis vi tilgår http://www.xx.com/865, er der ingen problemer, det kan være en normal adgang, adgangsloggen er som følger:

    Logs fra frontend 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"

Logs fra backend 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"

Vi ser, at backend Nginx-logs ikke registrerer IP-adressen på den oprindelige klient, men IP-adressen på frontend Nginx.

    Hvis du ændrer konfigurationen af baggrunds-Nginx-serveren til:

server {
  lyt 80;
  server_name lokalvært;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

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

    ……
}

Så laver vi adgangstesten igen:

    Logs fra frontend 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"

     Logs fra backend 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"

Det kan ses, at baggrunden denne gang registrerer klientens IP-adresse.







Tidligere:nginx proxy mode, få klientens rigtige IP-adresse
Næste:Discuz! X3.1 Alle versioner af X3 omgår tilladelse til attachment download uden credits Ubegrænset downloadsårbarhed
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com