Einige unserer Schnittstellen beinhalten Änderungen an Benutzerinformationen, und diese Schnittstellen erlauben nur der Zugriffspartei, uns anzupassen, daher haben wir eine IP-Whitelist auf nginx.
Sie ist mit der Ausgangs-IP der Zugangspartei ausgestattet.
Hier sind die Protokolle von unserem nginx-Zugang.
nginx nimmt unsere $remote_addr als echte IP, aber tatsächlich ist $http_X_Forwarded_For die echte IP des Benutzers, $remote_addr ist einfach die private Netzwerkadresse unseres f5 (Benutzer -->f5 --> nginx), was dazu führt, dass nginx den falschen Namen annimmt und der Benutzer die Schnittstelle immer 403 anpasst.
Lösung:
Im HTTP-Modul Plus
set_real_ip_from 10.10.10.122; Sag nginx, sie sollen den Wert von RealIP daraus ziehen
real_ip_header X-Real-IP; Der Name der Variable, die den RealIP-Wert speichert
Dose!
Hier beginnen wir mit dem nginx-Bericht nach dem Hinzufügen:
nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26
Also fügen wir das Realip-Modul hinzu und kompilieren nginx neu
1、cd /usr/local/nginx-1.6.3 2、./configure --prefix=/usr/cmcc/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module 3、Make & Make Installation
Tipps:
1. set_real_ip_from bezieht sich auf die echte Benutzer-IP, von der ein vertrauenswürdiger Pre-Proxy erhalten wird
2. real_ip_header bezieht sich auf die Benutzer-IP der vorherigen Proxy-Übertragung, von der HTTP-Teil der empfangenen Nachricht stammt
3. real_ip_recursive Ob rekursiv ausgeschlossen werden soll, bis die Benutzer-IP erhalten ist (standardmäßig ist deaktiviert)
Zuerst real_ip_header einen HTTP-Header-Namen angeben, der standardmäßig X-Real-IP ist.
(1) Wenn es 1 IP gibt, wird überprüft, ob die IP des Absenders in der vom set_real_ip_from angegebenen vertrauenswürdigen IP-Liste steht. Wenn es vertrauenswürdig ist, wird es annehmen, dass der IP-Wert in diesem X-Real-IP der echte IP-Wert des Benutzers ist, der vom vorherigen Agenten angegeben wurde, und weist diesen Wert seiner eigenen $remote_addr-Variable zu; Wenn es nicht vertrauenswert ist, wird es nicht verarbeitet, und $remote_addr ist weiterhin die IP-Adresse des Absenders.
(2) Wenn X-Real-Ip zum Beispiel mehrere IP-Werte hat, wird der vorherige Proxy wie folgt gesetzt: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;
Was man bekommt, ist eine Kette von IPs, daher ist der Wert der real_ip_recursive derzeit entscheidend. nginx vergleicht die IPs in der set_real_ip_from Trustliste von rechts nach links in der IP-Liste. Wenn die real_ip_recursive falsch ist, dann wird angenommen, dass die nächste IP (die zweite rechts) die echte IP des Benutzers ist, wenn die rechte IP als vertrauenswürdig identifiziert wird. Wenn der real_ip_recursive aktiviert ist, wird er von rechts nach links verglichen, bis eine nicht vertrauenswürdige IP gefunden wird. Dann kopieren Sie auch den IP-Wert auf $remote_adr.
Betriebsmittel:
https://help.aliyun.com/document_detail/54007.html
https://help.aliyun.com/knowledge_detail/55198.html
https://www.linux178.com/web/nginx-get-realip.html
|