Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 15060|Antwoord: 0

[Web] De front-end nginx en back-end nginx server registreren het IP-adres van de originele client

[Link kopiëren]
Geplaatst op 03-11-2014 09:53:23 | | |

Deze module stelt ons in staat om de waarde van het client IP-adres in de client request header te wijzigen (bijv. X-Real-IP of X-Forwarded-For).

    Deze functie is erg nuttig voor Nginx-servers als Nginx achter enkele Layer 7 load balancing-proxies werkt, omdat het lokale IP van het clientverzoek (dat wil zeggen het requestadres van de client) wordt toegevoegd aan de client IP-adresheader wanneer het door de Layer 7-proxy gaat, zodat de backend Nginx de IP-adreswaarde van de client kan verkrijgen. De module is standaard niet geïnstalleerd, dus als je de module wilt gebruiken, moet je de --with-http_realip_module optie toevoegen bij het compileren van de installatie.

    De reden voor het gebruik van deze module is dat het de achtergrondserver in staat stelt het IP-adres van de oorspronkelijke client op te nemen.

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


Vingers    Orde

   De module biedt slechts twee instructies.

Instructienaam: set_real_ip_from

Functie: Het specificeren van een vertrouwd adres via dit commando wordt vervangen door een exact IP-adres. Vertrouwde Unix-sockets kunnen ook vanaf versie 0.8.22 worden gebruikt. De IP-set hier verwijst naar de frontendNginxVernisofInktvisvanIPAdres.

Syntaxis: set_real_ip_from [het adres| CIDR|" unix:"]

Standaardwaarde: geen

Gebruiksomgeving: http, server, locatie

Instructienaam: real_ip_header

Functie: Dit commando wordt gebruikt om in te stellen welke header het IP-adres vervangt. Als X-Forwarded-For wordt gebruikt, vervangt de module het IP-adres van de front-end proxy door het laatste IP-adres in de X-Forwarded-For-header.

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

Standaardwaarde: real_ip_header X-Real-IP

Gebruiksomgeving: http, server, locatie

Gebruikssituaties   

    In het volgende voorbeeld is onze omgeving als volgt: er zijn twee Nginx-servers, één is de frontend en de andere de backend, de frontend Nginx wordt gebruikt als proxy, en de backend Nginx wordt gebruikt om pagina-toegang te bieden, en er is ook een client met het volgende IP-adres:

  

    Frontend Nginx: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Clienthost: 218.239.201.36

    De Nginx-configuratie op de frontend ziet er als volgt uit:

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

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

locatie /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 Host $host;
    proxy_redirect weg;
  }

……
}

De Nginx-configuratie voor de backend is als volgt:

server {
  luister 80;
  server_name lokale presentator;

  locatie / {
    wortel /var/www/html;
    index index.html index.htm;
  }

Toegang tot de test

    Als we toegang krijgen tot de http://www.xx.com/865, geen probleem, het kan een normale toegang zijn, het toegangslogboek is als volgt:

    Logs van 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-VS; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Logs van 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-VS; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

We zien dat de backend Nginx-logs niet het IP-adres van de oorspronkelijke client registreren, maar het IP-adres van de frontend-Nginx.

    Als je de configuratie van de achtergrond Nginx-server aanpast naar:

server {
  luister 80;
  server_name lokale presentator;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

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

    ……
}

Daarna doen we de toegangstest opnieuw:

    Logs van 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-VS; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

     Logs van 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-VS; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Je kunt zien dat de achtergrond dit keer het IP-adres van de client registreert.







Vorig:nginx proxy-modus, verkrijg het echte IP-adres van de client
Volgend:Discuz! X3.1 Alle versies van X3 omzeilen bijlage downloadrechten zonder credits Onbeperkte downloadkwetsbaarheid
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com