Lösen Sie das Problem, dass die mit nginx erhaltene IP-Adresse 127.0.0.1 ist

Lösen Sie das Problem, dass die mit nginx erhaltene IP-Adresse 127.0.0.1 ist

Holen Sie sich das IP-Tool

importiere lombok.extern.slf4j.Slf4j;
importiere org.apache.commons.lang3.StringUtils;

importiere javax.servlet.http.HttpServletRequest;

/**
 * IP-Adresse *
 * @date 6. März 2020 12:57:02 Uhr
 */
@Slf4j
öffentliche Klasse IPUtils {

    /**
     * IP-Adresse abrufen * 
     * Wenn Sie Reverse-Proxy-Software wie Nginx verwenden, können Sie die IP-Adresse nicht über request.getRemoteAddr() abrufen. * Wenn Sie mehrere Reverse-Proxy-Ebenen verwenden, ist der Wert von X-Forwarded-For nicht nur eine, sondern eine Zeichenfolge von IP-Adressen. Die erste gültige IP-Zeichenfolge, die in X-Forwarded-For nicht unbekannt ist, ist die echte IP-Adresse. */
    öffentliche statische Zeichenfolge getIpAddr(HttpServletRequest-Anfrage) {
        Zeichenfolge-IP = null;
        versuchen {
            ip = Anfrage.getHeader("x-forwarded-for");
            wenn (StringUtils.isEmpty(ip) || "unbekannt".equalsIgnoreCase(ip)) {
                ip = request.getHeader("Proxy-Client-IP");
            }
            wenn (StringUtils.isEmpty(ip) || ip.length() == 0 || "unbekannt".equalsIgnoreCase(ip)) {
                ip = request.getHeader("WL-Proxy-Client-IP");
            }
            wenn (StringUtils.isEmpty(ip) || "unbekannt".equalsIgnoreCase(ip)) {
                ip = request.getHeader("HTTP_CLIENT_IP");
            }
            wenn (StringUtils.isEmpty(ip) || "unbekannt".equalsIgnoreCase(ip)) {
                ip = Anfrage.getHeader("HTTP_X_FORWARDED_FOR");
            }
            wenn (StringUtils.isEmpty(ip) || "unbekannt".equalsIgnoreCase(ip)) {
                ip = request.getRemoteAddr();
            }
        } Fang (Ausnahme e) {
            log.error("IPUtils-FEHLER ", e);
        }
        
        //Mithilfe eines Proxys die erste IP-Adresse abrufen if(StringUtils.isEmpty(ip) && ip.length() > 15) {
            wenn(ip.indexOf(",") > 0) {
                ip = ip.substring(0, ip.indexOf(","));
            }
        }
        
        IP zurückgeben;
    }
    
}

Wenn Sie nginx verwenden, erhalten Sie die IP 127.0.0.1

Fügen Sie dem Proxy die folgende Konfiguration hinzu: proxy_set_header x-forwarded-for $remote_addr;

Server {
        hören Sie 80;
        Servername api.qimen.pro;
        # Größenbeschränkung für Server-Datei-Uploads client_max_body_size 10M;
        Standort / {
            Proxy-Passwort http://Fitnessstudioserver;
            Proxy_Set_Header x-weitergeleitet für $Remote_Addr;
        }
    }

Dies ist das Ende dieses Artikels zur Lösung des Problems, mit nginx die IP-Adresse 127.0.0.1 zu erhalten. Weitere Informationen zum Problem, mit dem nginx die IP-Adresse erhält, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So verhindern Sie mit Nginx die böswillige Auflösung von IP-Adressen
  • Beispiel für die Konfiguration mehrerer SSL-Zertifikate für eine einzelne Nginx-IP-Adresse

<<:  Eine detaillierte Erklärung der subtilen Unterschiede zwischen Readonly und Disabled

>>:  Erläuterung des MySQL-Nicht-Null-Einschränkungsfalls

Artikel empfehlen

Vue-Entwicklungsbaumstrukturkomponenten (Komponentenrekursion)

In diesem Artikelbeispiel wird der spezifische Co...

Referenz zur MySQL-Optimierungslösung

Probleme, die bei der Optimierung auftreten könne...

Vue Element UI-Komponente für benutzerdefinierte Beschreibungsliste

In diesem Artikelbeispiel wird der spezifische Co...

Vue implementiert die Funktionen Vergrößern, Verkleinern und Ziehen

In diesem Artikelbeispiel wird der spezifische Co...

Tutorial zur MySQL-SQL-Optimierung: IN- und RANGE-Abfragen

Lassen Sie uns zunächst über die in()-Abfrage spr...

Wann ist die Verwendung von dl, dt und dd sinnvoll?

dl: Definitionsliste Definitionsliste dt: Definiti...

TypeScript-Problem beim Iterieren über Objekteigenschaften

Inhaltsverzeichnis 1. Problem 2. Lösung 1. Deklar...

MySQL-Datenaggregation und -gruppierung

Wir müssen Daten häufig zusammenfassen, ohne sie ...

Verwendung der MySQL DATE_FORMAT-Funktion

Angenommen, Taobao animiert die Leute zum Einkauf...