user:jan001:ba:reverseproxy
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
user:jan001:ba:reverseproxy [2021/02/08 14:21] – created jan001 | user:jan001:ba:reverseproxy [2021/08/24 17:35] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Reverse Proxy (NGINX) ====== | ====== Reverse Proxy (NGINX) ====== | ||
- | Ein Reverse Proxy dient dazu einkommende Anfragen zu verwalten und diese an weitere Applikationen weiter zu leiten. Diese Anfragen folgen meist dem HTTP- bzw. HTTPS-Protokoll, | + | Ein Reverse Proxy dient dazu einkommende Anfragen zu verwalten und diese an weitere Applikationen weiter zu leiten |
- | ==== Integration Reverse Proxy ==== | + | ==== Probleme bei der Bereitstellung von Webapplikationen |
+ | Eine Webapplikation besteht meistens nicht nur aus einem Webserver beziehungsweise Webdienst, welcher alle Aufgaben übernimmt, sondern aus mehreren. Als Entwickler entstehen schwerwiegende Probleme, wenn versucht wird eine Applikation auf lediglich einem Server zu betreiben. Nach Sommerlad gibt es sieben Punkte die es zu beachten gilt: | ||
+ | * Man kann eine Webapplikation nicht auf einem Server implementieren, | ||
+ | * Man möchte die allgemeine Netzwerkstruktur der Webapplikation verstecken, um bei Änderung jener beispielsweise Lesezeichen der Nutzer nicht zu zerstören. | ||
+ | * Das Backend der Webapplikation muss auch funktionieren, | ||
+ | * Man muss die Möglichkeit haben Teile der Netzwerkstruktur zu ändern, ohne andere Teile zu beeinflussen. | ||
+ | * Man muss die Möglichkeit haben neue Elemente und somit Funktionalität zur Webapplikation hinzufügen zu können. | ||
+ | * Man muss die Möglichkeit haben Anfragen zwischen mehreren Hosts aufteilen zu können. | ||
+ | * Das ganze System sollte lediglich über ein einziges SSL Zertifikat verfügen, da SSL Zertifikate einen hohen Preis haben und deren Erneurung koordiniert werden muss. | ||
+ | Die von Sommerlad genannten Punkte sind von hoher Relevanz. Jedoch ist ein Punkt mittlerweile nicht mehr aktuell. SSL-Zertifikate können mittlerweile auch kostenlos bezogen und automatisch erneuert werden. Siehe Verschlüsselung mit TLS. Ein weiterer Punkt mit hoher Relevanz ist die Ausfallsicherheit. Sollte eine Webapplikation lediglich auf einem Server betrieben werden und dieser fällt aus, dann ist die komplette Applikation folglich nicht mehr erreichbar. | ||
- | === Problem | + | ==== Lösung für die Probleme |
+ | {{: | ||
+ | Nach Sommerlad ist die Lösung der oben genannten Probleme ein Intergration Reverse Proxy. In DARSTELLUNG SOMMERLAD wird eine beispielhafte Implementation eines solchen gezeigt. Ein Benutzer der Webapplikation ruft diese über das Internet auf. Dabei wird aus der URL klar, welchen bestimmten Bereich der Webapplikation der Benutzer aufrufen möchte, beispielsweise der Katalog unter "/ | ||
- | === Lösung === | + | Eine Firewall kann sowohl physisch in Form von Hardware, als auch digital in Form von Software vorliegen. Eine Kombination von beiden ist auch möglich. Die Hauptaufgabe einer Firewall ist es das dahinter liegende Netzwerk vor unauthorisierten Zugriffen zu schützen. Eine demiliarisierten Zone liegt weder in noch außerhalb einer solchen Firewall, wobei die Server in der Zone sowohl von internen, als auch externen Benutzern erreicht werden können. Sicherheitsrichtlinen verhindern dabei aber, dass externe Geräte und Nutzer direkt an die internen Server beziehungsweise Nutzer verbinden können. (Rababah, Zhou, Bader, 2018) |
- | ==== Weitere | + | Wenn die Anfrage dann den Reverse Proxy erreicht, leitet dieser die Anfrage an den jeweilgen Backend-Server weiter. Antworten von einem der Backend-Server werden dann auch über den Reverse Proxy zurück an den Benutzer geleitet. |
+ | |||
+ | ==== Vorteile | ||
+ | Die wichtigsten Vorteile der Lösung mit einem Intergration Reverse Proxy, welche relevant im Rahmen dieser Arbeit sind, werden im folgenden erläutert. | ||
+ | |||
+ | === Nur ein Hostname === | ||
+ | Einer der wichtigsten Vorteile laut Sommerlad ist es, dass es lediglich einen bekannten Host gibt, und zwar den Reverse Proxy. Für den Nutzer muss lediglich die Adresse von diesem bekannt sein, um eine Webapplikation zu erreichen, welche auf mehreren Servern betrieben wird. Dass lediglich ein Hostname benötigt wird bringt noch weitere Vorteile mit sich. Auch ist die allgemeine Netzwerkstruktur der Webapplikation versteckt. Dies macht es für potenzielle Angreifer schwerer Sicherheitslücken zu finden. Weiterhin ist es so möglich einen Teil der Applikation auf einen anderen Server zu verschieben, | ||
=== Verschlüsselung mit TLS === | === Verschlüsselung mit TLS === | ||
+ | TLS (kurz für Transport Layer Security) ist der Nachfolger des SSL-Protokolls. Die aktuelleste Version ist Version 1.3. Sowohl SSL als auch TLS sind Teil des HTTPS-Protokolls (Hypertext Transfer Protocol Secure). SSL kommt dabei heutzutage nicht mehr zum Einsatz, da es auf Grund von schweren Sicherheitslücken (beispielsweise POODLE Attacke) seit 2015 von der " | ||
+ | Die Zertifikate, | ||
+ | Besteht eine verschlüsselte Verbindung ist dies für den Nutzer anhand der URL erkennbar. Diese beginnt dann mit " | ||
=== Load Balancing === | === Load Balancing === | ||
- | + | Auch ermöglicht ein Reverse Proxy die Einrichtung mit sogenanntem Load Balancing. Dabei werden Anfragen auf unterschiedliche Backend-Sever verteilt, welche aber die selbe Applikation betreiben. Dies ermöglicht besonders bei System mit vielen Nutzern, die Last zu verteilen und dem Nutzer so eine bessere Nutzung zu ermöglichen. | |
- | === Double | + | Es gibt mehrere Verfahren zur Verteilung von Anfragen. Eine einfache Lösung ist beispielsweise die "Round Robin" |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
user/jan001/ba/reverseproxy.1612790492.txt.gz · Last modified: 2021/08/24 17:34 (external edit)