Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 15060|Risposta: 0

[Web] Il server nginx front-end e nginx back-end registra l'indirizzo IP del client originale

[Copiato link]
Pubblicato su 03/11/2014 09:53:23 | | |

Questo modulo ci permette di modificare il valore dell'indirizzo IP del client nell'intestazione della richiesta client (ad esempio, X-Real-IP o X-Forwarded-For).

    Questa funzione è molto utile per i server Nginx se Nginx lavora dietro alcuni proxye di bilanciamento del carico di Layer 7, perché l'IP locale della richiesta del client (cioè l'indirizzo della richiesta del client) viene aggiunto all'intestazione dell'indirizzo IP del client quando si passa attraverso il proxy di Layer 7, così che il backend Nginx possa ottenere il valore dell'indirizzo IP del client. Il modulo non è installato di default, quindi se vuoi usarlo, devi aggiungere l'opzione --with-http_realip_module quando compili l'installazione.

    Il motivo per cui si utilizza questo modulo è che permette al server in background di registrare l'indirizzo IP del client originale.

Esempio di configurazione
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Dita    Ordine

   Il modulo fornisce solo due istruzioni.

Nome dell'istruzione: set_real_ip_from

Funzione: Specificare un indirizzo affidabile tramite questo comando sarà sostituito da un indirizzo IP esatto. I socket Unix affidabili possono essere utilizzati anche dalla versione 0.8.22 in poi. L'IP impostato qui si riferisce al frontendNginxVerniceoCalamarodiIPIndirizzo.

Sintassi: set_real_ip_from [l'indirizzo| CIDR|" unix :"]

Valore predefinito: nessuno

Ambiente d'uso: http, server, posizione

Nome dell'istruzione: real_ip_header

Funzione: Questo comando serve a impostare quale header utilizzare per sostituire l'indirizzo IP. Se viene utilizzato X-Forwarded-For, il modulo sostituirà l'indirizzo IP del proxy front-end con l'ultimo indirizzo IP nell'intestazione X-Forwarded-For.

Sintassi: real_ip_header [X-Real-IP| X-Forwarded-Per]

Valore predefinito: real_ip_header X-Real-IP

Ambiente d'uso: http, server, posizione

Casi d'uso   

    Nel seguente esempio, il nostro ambiente è così: ci sono due server Nginx, uno è il frontend e l'altro il backend, il frontend Nginx viene usato come proxy, e il backend Nginx serve a fornire accesso alle pagine, e c'è anche un client con il seguente indirizzo IP:

  

    Nginx Frontend: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Ospite cliente: 218.239.201.36

    La configurazione Nginx sul frontend appare così:

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

Posizione / {
    root html;
    indice index.html index.htm;
Charset UTF-8;
  }

Posizione /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 Conduttore $host;
    proxy_redirect off;
  }

……
}

La configurazione Nginx per il backend è la seguente:

server {
  ascolta 80;
  server_name localhost;

  Posizione / {
    root /var/www/html;
    indice index.html index.htm;
  }

Accedi al test

    Se accediamo al http://www.xx.com/865, nessun problema, può essere un accesso normale, il registro di accesso è il seguente:

    Logs dal frontend Nginx:

218.239.201.36 - - [30/Ago/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 dal backend Nginx:

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

Vediamo che i log backend Nginx non registrano l'indirizzo IP del client originale, ma l'indirizzo IP del Nginx frontend.

    Se modifichi la configurazione del server Nginx in background per:

server {
  ascolta 80;
  server_name localhost;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  Posizione / {
    root html;
    indice index.html index.htm;
  }

    ……
}

Poi rifacciamo il test di accesso:

    Logs dal frontend Nginx:

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

Si può vedere che questa volta lo sfondo registra l'indirizzo IP del client.







Precedente:Modalità proxy nginx, ottenere l'indirizzo IP reale del client
Prossimo:Discuz! X3.1 Tutte le versioni di X3 bypassano il permesso di download degli allegati senza crediti Vulnerabilità di download illimitato
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com