Frage Nginx nimmt $remote_addr als echte IP-Adresse, aber tatsächlich ist $http_X_Forwarded_For die echte IP-Adresse des Benutzers und $remote_addr nur die Adresse der oberen Schicht des Proxys. Lösung: HTTP-Modul hinzufügen set_real_ip_from 172.17.10.125; #Die obere Proxy-IP-Adresse real_ip_header X-Forwarded-For; real_ip_recursive ein; Starten Sie nach dem Hinzufügen nginx und melden Sie einen Fehler: nginx: [emerg] unbekannte Anweisung „set_real_ip_from“ in /home/lnidmp/nginx/conf/nginx.conf:26 Sie müssen das Realip-Modul hinzufügen und Nginx neu kompilieren. 1. cd /usr/local/nginx-1.15.12 2. ./configure --prefix=/usr/cmcc/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module 3. make und make install Freundliche Tipps: 1. set_real_ip_from bedeutet, die echte Benutzer-IP zu akzeptieren, von der der vertrauenswürdige Proxy 2. real_ip_header bezieht sich auf den HTTP-Header der empfangenen Nachricht, um die vom vorherigen Proxy gesendete Benutzer-IP abzurufen 3. real_ip_recursive: Gibt an, ob rekursiv ausgeschlossen werden soll, bis die Benutzer-IP abgerufen wird (Standard ist deaktiviert) Zunächst gibt real_ip_header einen HTTP-Headernamen an, der Standardwert ist X-Real-Ip. Vorausgesetzt, der Standardwert wird verwendet, überprüft nginx nach Erhalt der Nachricht den HTTP-Header X-Real-Ip. (1) Wenn eine IP vorhanden ist, wird geprüft, ob die IP des Absenders in der durch set_real_ip_from angegebenen Liste vertrauenswürdiger IPs enthalten ist. Wenn es vertrauenswürdig ist, wird es denken, dass der IP-Wert in X-Real-Ip der echte IP-Wert des Benutzers ist, der ihm vom Front-Proxy mitgeteilt wurde, und wird den Wert daher seiner eigenen Variable $remote_addr zuweisen. Wenn es nicht vertrauenswürdig ist, wird es nicht verarbeitet und $remote_addr ist weiterhin die IP-Adresse des Absenders. (2) Wenn X-Real-Ip beispielsweise mehrere IP-Werte besitzt, wird der vorherige Proxy folgendermaßen gesetzt: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for; Sie erhalten eine Zeichenfolge aus IPs. Der Wert von real_ip_recursive ist daher entscheidend. Nginx vergleicht die IPs in der Vertrauensliste von set_real_ip_from von rechts nach links in der IP-Liste. Wenn real_ip_recursive deaktiviert ist und die IP ganz rechts als vertrauenswürdige IP erkannt wird, wird die nächste IP (die zweite von rechts) als echte IP des Benutzers betrachtet. Wenn real_ip_recursive aktiviert ist, werden die IP-Adressen von rechts nach links verglichen, bis eine nicht vertrauenswürdige IP-Adresse gefunden wird. Kopieren Sie dann den IP-Wert auch nach $remote_addr. Die Produktionskonfigurationsdatei von nginx lautet wie folgt: Benutzer www; Arbeiterprozesse 10; Arbeiter_rlimit_nofile 51200; #error_log Protokolle/Fehler.log; #error_log Protokolle/error.log Hinweis; #error_log Protokolle/error.log-Info; Fehlerprotokoll /data/logs/nginx_error.log crit; #pid-Protokolle/nginx.pid; Ereignisse { verwenden Sie epoll; Arbeiterverbindungen 51200; } http { mime.types einschließen; Standardtyp Anwendung/Oktett-Stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log Protokolle/access.log Haupt; Servernamen_Hash_Bucket_Größe 128; Server-Tokens aus; läuft in 1 Stunde ab; Sendfile aus; tcp_nopush ein; Zeitüberschreitung bei fastcgi_connect_timeout: 1200 s; fastcgi_send_timeout 1200s; fastcgi_read_timeout 1200s; fastcgi_buffer_size 128k; fastcgi_buffers 8 128k;#8 128 fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; KeepAlive-Timeout 65; tcp_nodelay ein; Fehlerseite 404 /; gzip an; gzip_min_länge 2048; gzip_puffer 4 16k; gzip_http_version 1.1; gzip_types Text/einfaches CSS HTML-Anwendung/Xml-Anwendung/X-Javascript; set_real_ip_from die obere Proxy-IP-Adresse; real_ip_recursive ein; real_ip_header X-Weitergeleitet-Für; log_format Zugriff '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; ##################### enthalten ############################################## schließen Sie conf.d/*.conf ein; } Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: So verwenden Sie vue.js zum Implementieren der Drag & Drop-Funktion
>>: Grundlegendes zu MySQL-Sperren basierend auf Update-SQL-Anweisungen
In diesem Artikelbeispiel wird der spezifische Co...
Überblick Was das aktuelle Standardnetzwerk von D...
Bei Datenbanken, die schon lange laufen, besteht ...
Vor kurzem traten bei der Bereitstellung der Umge...
In diesem Artikel wird der spezifische Code für d...
In letzter Zeit müssen folgende Effekte erzielt w...
HTML-Tags zur Textformatierung 標簽 描述 <b> 定義...
Das 404-Problem tritt im Tomcat-Test auf. Die Pro...
Inhaltsverzeichnis 1. Konstrukteure und Prototype...
Inhaltsverzeichnis 1. Was ist eine Unterabfrage? ...
Wie installiere ich MySQL 5.7 in Ubuntu 16.04? In...
Lösung für den Fehler beim Starten von MySQL MySQ...
Wissenspunkte zur Speicher-Storage-Engine Die Spe...
1: Verstehen Sie die Bedeutung von Adressumschrei...
Inhaltsverzeichnis 1. Grundkonzepte von GTID 2. G...