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
Dies ist der Effekt der Element-UI-Ladekomponente...
Verwenden Sie einen JS-Timer, um ein Element zu e...
Zusammenfassung der Installations- und Konfigurat...
Inhaltsverzeichnis Vorwort Hintergrunddatenspleiß...
Inhaltsverzeichnis Nehmen Sie Todolist als Beispi...
Die Verwaltung des Speicherplatzes ist für System...
Inhaltsverzeichnis Überblick Umgebungsvorbereitun...
Lottie ist eine von Airbnb entwickelte Open-Sourc...
Fragen zu Select-Elementen in HTML wurden an viel...
Frage Im vorherigen Artikel zur domänenübergreife...
Inhaltsverzeichnis Überblick Lösung 1: Verschlüss...
Es gibt zwei Möglichkeiten, MySQL unter Linux zu ...
Inhaltsverzeichnis 1. Template-Tag in HTML5 2. Ei...
Befolgen Sie die nachstehenden Schritte 1. Inhalt...
Wenn wir in der MySQL-Datenbank Fuzzy-Abfragen be...