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

MySQL 8.0.20 Installations- und Konfigurations-Tutorial unter Win10

Super ausführliches Tutorial zur Installation und...

Eine ausführliche Zusammenfassung der Überlegungen zu MySQL-Zeiteinstellungen

Existiert die Zeit wirklich? Manche Menschen glau...

js um das Schlangenspiel mit Kommentaren zu implementieren

In diesem Artikelbeispiel wird der spezifische Co...

Drei Diskussionen zum Iframe Adaptive Height Code

Beim Erstellen einer B/S-Systemschnittstelle stößt...

Detaillierte Erläuterung gängiger Methoden von JavaScript-Arrays

Inhaltsverzeichnis Gängige Array-Methoden Pop() u...

JavaScript zur Implementierung eines Sprachwarteschlangensystems

Inhaltsverzeichnis einführen Hauptmerkmale Effekt...

So stellen Sie Tomcat stapelweise mit Ansible bereit

1.1 Aufbau der Verzeichnisstruktur Dieser Vorgang...

js implementiert einen einfachen Countdown

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung der Vue3-Slot-Nutzung

Inhaltsverzeichnis 1. Einführung in den V-Slot 2....

So implementieren Sie das Prototypmuster in JavaScript

Überblick Das Prototypmuster bezieht sich auf den...