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

Tab-Effekte mit JS schreiben

In diesem Artikelbeispiel wird der spezifische Co...

Einfaches Docker Swarm-Tutorial

Schwarm drei virtuelle Maschinen 132,133,134 1. I...

Miniprogramm zur Implementierung der Token-Generierung und -Verifizierung

Inhaltsverzeichnis Verfahren Demo Mini-Programm B...

Einführung und Verwendungszusammenfassung der negativen Margenfunktion

Bereits in den CSS2-Empfehlungen von 1998 verschwa...

So verstehen Sie die Modularität von JavaScript

Inhaltsverzeichnis 1. Browserunterstützung 2. Exp...

Native JS-Kapselung, nahtlose Karussellfunktion

Natives js-gekapseltes nahtloses Karussell-Plug-I...

Grundprinzipien für die Zusammenstellung einer Website-Homepage

1. Die Organisationsstruktur des Hypertext-Dokumen...

Kapseln Sie die Navigationsleistenkomponente mit Vue

Vorwort: Die vollständige Kapselung eines Funktio...

So versuchen Sie, Ihrem CSS einen Sticky-Effekt hinzuzufügen

Vorne geschrieben Ich weiß nicht, wer als Erster ...

So verwenden Sie vs2019 für die Linux-Remote-Entwicklung

Normalerweise gibt es bei der Entwicklung von Lin...

So fügen Sie eine Schnittstellen-Abhörmaske in ein Vue-Projekt ein

1. Geschäftshintergrund Die Verwendung einer Mask...