Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 15060|Svar: 0

[Web] Front-end nginx och backend nginx-servern registrerar IP-adressen till den ursprungliga klienten

[Kopiera länk]
Publicerad på 2014-11-03 09:53:23 | | |

Denna modul låter oss ändra klientens IP-adressvärde i klientförfrågan-headern (t.ex. X-Real-IP eller X-Forwarded-For).

    Denna funktion är mycket användbar för Nginx-servrar om Nginx arbetar bakom vissa lastbalanseringsproxyer på lager 7, eftersom den lokala IP-adressen för klientförfrågan (det vill säga klientens adress) läggs till klientens IP-adresshuvud när den passerar genom Layer 7-proxyn, så att backend-Nginx kan få tag på klientens IP-adressvärde. Modulen är inte installerad som standard, så om du vill använda modulen måste du lägga till --with-http_realip_module-alternativet när du kompilerar installationen.

    Anledningen till att denna modul används är att den tillåter bakgrundsservern att registrera IP-adressen till den ursprungliga klienten.

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


Fingrar    Ordning

   Modulen ger endast två instruktioner.

Instruktionsnamn: set_real_ip_from

Funktion: Att ange en betrodd adress via detta kommando ersätts med en exakt IP-adress. Betrodda Unix-socklar kan också användas från version 0.8.22 och framåt. IP-uppsättningen här avser frontendNginxLackellerBläckfiskavIPAdress.

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

Standardvärde: inget

Användningsmiljö: http, server, plats

Instruktionsnamn: real_ip_header

Funktion: Detta kommando används för att ställa in vilken header som ska ersätta IP-adressen. Om X-Forwarded-For används kommer modulen att ersätta IP-adressen till front-end-proxyn med den senaste IP-adressen i X-Forwarded-For-headern.

Syntax: real_ip_header [X-Real-IP| X-Vidarebefordrat]

Standardvärde: real_ip_header X-Real-IP

Användningsmiljö: http, server, plats

Användningsområden   

    I följande exempel är vår miljö så här: det finns två Nginx-servrar, en är frontend och den andra backend, frontend-Nginx används som proxy, backend-Nginx används för att ge sidåtkomst, och det finns också en klient med följande IP-adress:

  

    Frontend Nginx: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Klientvärd: 218.239.201.36

    Nginx-konfigurationen på frontend ser ut så här:

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

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

plats /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-vidarebefordrade-för $proxy_add_x_forwarded_for;
proxy_set_header Programledare $host;
    proxy_redirect av;
  }

……
}

Nginx-konfigurationen för backend är följande:

server {
  lyssna 80;
  server_name lokal programledare;

  Plats / {
    rot /var/www/html;
    index index.html index.htm;
  }

Ta tillgång till testet

    Om vi får tillgång till http://www.xx.com/865 inga problem, det kan vara en vanlig åtkomst, åtkomstloggen är följande:

    Loggar från 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"

Loggar från 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 att backend-Nginx-loggarna inte registrerar IP-adressen till den ursprungliga klienten, utan IP-adressen till frontend-Nginx.

    Om du ändrar konfigurationen av bakgrundsservern Nginx till:

server {
  lyssna 80;
  server_name lokal programledare;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  Plats / {
    rot-html;
    index index.html index.htm;
  }

    ……
}

Sedan gör vi åtkomsttestet igen:

    Loggar från 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"

     Loggar från 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 att denna gång registrerar bakgrunden klientens IP-adress.







Föregående:nginx proxy-läge, erhåll klientens verkliga IP-adress
Nästa:Discuz! X3.1 Alla versioner av X3 kringgår behörighet för nedladdning av bilagor utan krediter Obegränsad nedladdningssårbarhet
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com