Wie Reverse Proxies funktionieren
Nginx ist ein leistungsstarker Open-Source-Webserver, der häufig als Reverse-Proxy-Server eingesetzt wird. Reverse-Proxy bedeutet, dass der Client nicht weiß, wer der echte Server ist. Alle Anfragen werden vom Reverse-Proxy-Server entgegengenommen, der die Anfrage an den echten Server weiterleitet. Die Antwort, die der Client erhält, wird ebenfalls über den Reverse-Proxy-Server zurückgegeben. Der Beispielcode lautet wie folgt:
nginx
Standort / {
proxy_pass http://backend_server;
}
In diesem Beispiel leitet Nginx alle eingehenden Anfragen an den backend_server weiter und gibt die vom backend_server zurückgegebene Antwort an den Client zurück.
Funktionsweise von Positiv-Proxies
Im Gegensatz zu einem Reverse-Proxy ist bei einem Forward-Proxy dem Client bekannt, wer der eigentliche Server ist, aber der Client greift über einen Proxy-Server auf den eigentlichen Server zu. Der Forward-Proxy-Server empfängt die Anfrage des Clients, leitet die Anfrage an den echten Server weiter und sendet die Antwort des Servers an den Client zurück. Der Beispielcode lautet wie folgt:
Standort / {
proxy_pass http://real_server;
}
In diesem Beispiel leitet Nginx alle eingehenden Anfragen an real_server weiter und gibt die von real_server zurückgegebene Antwort an den Client zurück.
Vergleich von Reverse- und Forward-Proxys
Zwischen einem Reverse-Proxy und einem Forward-Proxy besteht ein deutlicher Unterschied in der Funktionsweise. Ein Reverse-Proxy verbirgt Informationen über den echten Server und der Client weiß nicht, wer der echte Server ist, während ein Forward-Proxy bedeutet, dass der Client weiß, wer der echte Server ist, aber über einen Proxy-Server darauf zugreift.
Insgesamt werden Reverse-Proxys eher zum Verbergen von Serverinformationen, zur Verbesserung der Sicherheit und zum Lastausgleich eingesetzt, während Forward-Proxys eher für den Zugriff auf eingeschränkte Inhalte oder zum Umgehen von Firewalls verwendet werden. Die Entscheidung, welche Proxy-Methode verwendet werden soll, muss auf der Grundlage der spezifischen Anforderungen getroffen werden.
In der Praxis können wir je nach spezifischem Szenario das richtige Mittel wählen, um bessere Ergebnisse zu erzielen.