Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 15060|Svare: 0

[Web] Front-end nginx og back-end nginx-serveren registrerer IP-adressen til den opprinnelige klienten

[Kopier lenke]
Publisert på 03.11.2014 09:53:23 | | |

Denne modulen lar oss endre verdien av klientens IP-adresse i klientforespørselsheaderen (f.eks. X-Real-IP eller X-Forwarded-For).

    Denne funksjonen er svært nyttig for Nginx-servere hvis Nginx fungerer bak noen Layer 7-lastbalanseringsproxyer, fordi den lokale IP-adressen til klientforespørselen (altså klientens forespørselsadresse) legges til klientens IP-adresseheader når den passerer gjennom Layer 7-proxyen, slik at backend-Nginx kan hente IP-adresseverdien til klienten. Modulen er ikke installert som standard, så hvis du vil bruke modulen, må du legge til --with-http_realip_module-alternativet når du kompilerer installasjonen.

    Grunnen til å bruke denne modulen er at den lar bakgrunnsserveren registrere IP-adressen til den opprinnelige klienten.

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


Fingre    Rekkefølge

   Modulen gir kun to instruksjoner.

Instruksjonsnavn: set_real_ip_from

Funksjon: Å spesifisere en betrodd adresse gjennom denne kommandoen vil bli erstattet med en eksakt IP-adresse. Pålitelige Unix-sokler kan også brukes fra versjon 0.8.22 og utover. IP-satt her refererer til frontendNginxLakkellerBlekksprutavIPAdresse.

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

Standardverdi: ingen

Bruksmiljø: http, server, lokasjon

Instruksjonsnavn: real_ip_header

Funksjon: Denne kommandoen brukes til å sette hvilken header som skal brukes for å erstatte IP-adressen. Hvis X-Forwarded-For brukes, vil modulen erstatte IP-adressen til front-end proxyen med den siste IP-adressen i X-Forwarded-For-headeren.

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

Standardverdi: real_ip_header X-Real-IP

Bruksmiljø: http, server, lokasjon

Bruksområder   

    I det følgende eksempelet er miljøet vårt slik: det finnes to Nginx-servere, én er frontend og en annen backend, frontend Nginx brukes som proxy, og backend Nginx brukes til å gi sidetilgang, og det finnes også en klient med følgende IP-adresse:

  

    Frontend Nginx: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Klientvert: 218.239.201.36

    Nginx-konfigurasjonen på frontenden ser slik ut:

server {
  Hør 80;
  server_name www.xx.com;

Lokasjon / {
    rot-html;
    indeks index.html index.htm;
Charset UTF-8;
  }

lokasjon /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 programleder $host;
    proxy_redirect av;
  }

……
}

Nginx-konfigurasjonen for backend er som følger:

server {
  Hør 80;
  server_name lokalprogramleder;

  Lokasjon / {
    rot /var/www/html;
    indeks index.html index.htm;
  }

Få tilgang til testen

    Hvis vi får tilgang til http://www.xx.com/865, er det ikke noe problem, det kan være en vanlig tilgang, tilgangsloggen er som følger:

    Logger 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"

Logger 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-loggene ikke registrerer IP-adressen til den opprinnelige klienten, men IP-adressen til frontend-Nginx.

    Hvis du endrer konfigurasjonen av bakgrunns-Nginx-serveren til:

server {
  Hør 80;
  server_name lokalprogramleder;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  Lokasjon / {
    rot-html;
    indeks index.html index.htm;
  }

    ……
}

Så gjør vi tilgangstesten igjen:

    Logger 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"

     Logger 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 sees at denne gangen registrerer bakgrunnen klientens IP-adresse.







Foregående:nginx proxy-modus, hent den virkelige IP-adressen til klienten
Neste:Discuz! X3.1 Alle versjoner av X3 omgår nedlastingstillatelse for vedlegg uten kreditter Ubegrenset nedlastingssårbarhet
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com