Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 15060|Antwort: 0

[Web] Der Frontend-nginx- und Backend-nginx-Server zeichnet die IP-Adresse des ursprünglichen Clients auf

[Link kopieren]
Veröffentlicht am 03.11.2014 09:53:23 | | |

Dieses Modul ermöglicht es uns, den Wert der Client-IP-Adresse im Client-Anfrage-Header zu ändern (z. B. X-Real-IP oder X-Forwarded-For).

    Diese Funktion ist für Nginx-Server sehr nützlich, wenn Nginx hinter einigen Layer-7-Lastverteilungsproxies arbeitet, da die lokale IP der Client-Anfrage (also die Anforderungsadresse des Clients) beim Durchqueren des Layer-7-Proxys dem Client-IP-Adressheader hinzugefügt wird, sodass das Backend-Nginx den IP-Adresswert des Clients erhalten kann. Das Modul ist standardmäßig nicht installiert, daher musst du, wenn du das Modul verwenden möchtest, beim Kompilieren der Installation die --with-http_realip_module-Option hinzufügen.

    Der Grund für die Verwendung dieses Moduls ist, dass es dem Hintergrundserver erlaubt, die IP-Adresse des ursprünglichen Clients aufzuzeichnen.

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


Finger    Bestellung

   Das Modul bietet nur zwei Anweisungen.

Instruktionsname: set_real_ip_from

Funktion: Die Angabe einer vertrauenswürdigen Adresse durch diesen Befehl wird durch eine exakte IP-Adresse ersetzt. Vertrauenswürdige Unix-Sockets können ebenfalls ab Version 0.8.22 verwendet werden. Das hier gesetzte IP bezieht sich auf das FrontendNginxLackoderTintenfischvonIPAdresse.

Syntax: set_real_ip_from [die Adresse| CIDR|" unix:"]

Standardwert: keine

Nutzungsumgebung: http, Server, Standort

Instruktionsname: real_ip_header

Funktion: Dieser Befehl wird verwendet, um festzulegen, welchen Header zur Ersetzung der IP-Adresse verwendet werden soll. Wenn X-Forwarded-For verwendet wird, ersetzt das Modul die IP-Adresse des Frontend-Proxys durch die letzte IP-Adresse im X-Forwarded-For-Header.

Syntax: real_ip_header [X-Real-IP| X-Weitergeleitet-für]

Standardwert: real_ip_header X-Real-IP

Nutzungsumgebung: http, Server, Standort

Anwendungsfälle   

    Im folgenden Beispiel sieht unsere Umgebung so aus: Es gibt zwei Nginx-Server, einer ist das Frontend, der andere das Backend, der Frontend-Nginx wird als Proxy verwendet, der Backend-Nginx dient zur Bereitstellung des Seitenzugriffs, außerdem gibt es einen Client mit folgender IP-Adresse:

  

    Frontend Nginx: 192.168.7.10

    Backend-Nginx: 192.168.1.15

    Client-Host: 218.239.201.36

    Die Nginx-Konfiguration am Frontend sieht so aus:

Server {
  hören 80;
  server_name www.xx.com;

Standort / {
    Root-HTML;
    Index index.html index.htm;
Charset UTF-8;
  }

Ort /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-weitergeleitet-für $proxy_add_x_forwarded_for;
proxy_set_header Moderator $host;
    proxy_redirect ab;
  }

……
}

Die Nginx-Konfiguration für das Backend ist wie folgt:

Server {
  hören 80;
  server_name lokaler Moderator;

  Standort / {
    Wurzel /var/www/html;
    Index index.html index.htm;
  }

Zugriff auf den Test

    Wenn wir auf das http://www.xx.com/865 zugreifen, kein Problem, es kann ein normaler Zugriff sein, das Zugriffsprotokoll ist wie folgt:

    Logs von 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; in den USA; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Protokolle aus dem Backend von 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; in den USA; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Wir sehen, dass die Backend-Nginx-Logs nicht die IP-Adresse des ursprünglichen Clients aufzeichnen, sondern die IP-Adresse des Frontend-Nginx.

    Wenn Sie die Konfiguration des Nginx-Hintergrundservers ändern:

Server {
  hören 80;
  server_name lokaler Moderator;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  Standort / {
    Root-HTML;
    Index index.html index.htm;
  }

    ……
}

Dann führen wir den Zugriffstest erneut durch:

    Logs von 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; in den USA; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

     Protokolle aus dem Backend von 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; in den USA; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Man sieht, dass diesmal der Hintergrund die IP-Adresse des Kunden aufzeichnet.







Vorhergehend:nginx-Proxy-Modus, um die reale IP-Adresse des Clients zu erhalten
Nächster:Discuz! X3.1 Alle Versionen von X3 umgehen Anhänge-Download-Berechtigungen ohne Credits Unbegrenzte Download-Schwachstelle
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com