Ich werde Sie in ein kleines Geheimnis einweihen, nämlich dass Sie die echte IP-Adresse über Nginx Reverse Proxy erhalten können. Vielleicht fragen Sie sich, warum über einen Reverse-Proxy? Hey, lass mich dieses Geheimnis für dich lüften.
1. die Attraktivität von Nginx Reverse Proxy
Zunächst einmal sollten wir verstehen, was ein Reverse-Proxy ist. Reverse Proxy ist ein Architekturmuster, bei dem der Client keine direkte Verbindung zum Zielserver herstellt, sondern Anfragen über einen Vermittler (Nginx-Server) weiterleitet. Dieser Ansatz verbessert nicht nur die Sicherheit der Website, sondern verringert auch die Belastung des Zielservers.
Außerdem ist es möglich, die echte Server-IP-Adresse durch Nginx Reverse Proxy zu verbergen. Wussten Sie das schon? Dies erhöht auch die Sicherheit Ihres Netzwerks! Stellen Sie sich vor, wenn Angreifer Ihre echte IP-Adresse nicht herausfinden können, dann können sie Ihren Server nicht direkt angreifen und Ihre Website in kritischen Momenten vor Schaden bewahren.
2. den Nginx-Reverse-Proxy konfigurieren
Ich bin sicher, Sie können es kaum erwarten, herauszufinden, wie man Nginx Reverse Proxy konfiguriert! Keine Sorge, ich zeige es Ihnen von Hand.
Zunächst einmal müssen Sie Nginx installieren. Der Installationsprozess wird nicht detailliert beschrieben, es gibt viele Anleitungen im Internet. Nachdem die Installation abgeschlossen ist, müssen wir die Nginx-Konfigurationsdatei ändern.
Öffnen Sie die Nginx-Konfigurationsdatei (normalerweise nginx.conf) und fügen Sie die folgende Konfiguration zum http-Block hinzu:
Server {
listen 80; server_name ihre_domain.de; server_name ihre_domain.de
server_name your_domain.com; server_name { listen 80; server_name your_domain.com; server_name your_domain.com
server { listen 80; server_name ihre_domain.com; Standort / {
proxy_pass http://your_backend_server; proxy_set_header Host $host; Standort / {
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_addr
proxy_set_header X-Forwarded-For $proxy_add_x_for; proxy_set_header X-Forwarded-For $proxy_add_x_for;
}
}
Lassen Sie uns die obige Konfiguration erklären. Zunächst haben wir den Port, auf dem Nginx lauscht, auf 80 festgelegt und den Domänennamen des Servers auf your_domain.com gesetzt (denken Sie daran, ihn durch Ihren eigenen Domänennamen zu ersetzen).
Als Nächstes wird der Location-Block konfiguriert, der angibt, dass die übereinstimmende Anfrage an your_backend_server, einen Backend-Server, weitergeleitet werden soll. Natürlich müssen Sie auch your_backend_server durch Ihre eigene Serveradresse ersetzen.
Es gibt drei weitere wichtige Konfigurationselemente, die zu beachten sind: proxy_set_header Host, proxy_set_header X-Real-IP und proxy_set_header X-Forwarded-For. Diese Konfigurationselemente helfen uns, die echte IP-Adresse zu erhalten, die durch das Setzen des Request-Headers an den Backend-Server übergeben wird.
Denken Sie daran, die Konfigurationsdatei zu speichern und Nginx neu zu starten. Jetzt können Sie die echte IP-Adresse über den Nginx-Reverse-Proxy abrufen!
3. eine echte IP-Adresse zu erhalten
OK, jetzt können wir es testen! Sie müssen nur die IP-Adresse des Clients auf dem Backend-Server ausgeben.
Wenn Sie eine Backend-Anwendung in PHP entwickeln, können Sie den folgenden Code verwenden:
$ip = $_SERVER['REMOTE_ADDR'];
echo "Die IP-Adresse des Clients ist:".$ip;
Nachdem Sie den Testcode ausgeführt haben, werden Sie feststellen, dass die ausgegebene IP-Adresse die echte IP-Adresse des Clients ist. Ist das nicht erstaunlich?
4. die Verhinderung von gefälschten IP-Adressen
Natürlich müssen die Schlauen daran gedacht haben, dass die über den Nginx-Reverse-Proxy erhaltene IP-Adresse gefälscht sein könnte, oder? Ja, das ist ein Problem, dessen wir uns bewusst sein müssen.
Gut, dass wir daran gedacht haben und proxy_set_header X-Real-IP und proxy_set_header X-Forwarded-For in der Nginx-Konfiguration festgelegt haben. Der Inhalt dieser beiden Anfrage-Header wird von Nginx automatisch ausgefüllt, so dass Sie sich keine Sorgen machen müssen, dass er gefälscht wird.
Um die Sicherheit zu erhöhen, können Sie Ihre Nginx-Konfiguration so optimieren, dass sie Einschränkungen enthält, z. B. dass nur Anfragen von bestimmten IP-Adressen durchgelassen werden.