
Ich habe mehrere unterschiedliche Docker-Anwendungen. Jede verfügt über einen eigenen Nginx-Dienst, der den Datenverkehr auf der Grundlage bestimmter Regeln an seine Container sendet.
Ich muss diese Anwendungen auf demselben Server platzieren, also habe ich im Host ein neues Nginx hinzugefügt, das SSL verarbeitet und den Datenverkehr an das richtige, dockerisierte Nginx weiterleitet.
Frage: Ist es in Ordnung, Nginx im Host zu verwenden, der den Datenverkehr an mehrere verschiedene, dockerisierte Nginx weiterleitet? Gibt es bekannte Probleme? Wird sich das auf die Leistung auswirken?
Antwort1
Ist es in Ordnung, Nginx im Host zu verwenden, der den Datenverkehr an mehrere verschiedene, dockerisierte Nginx weiterleitet?
Ja, das ist tatsächlich eine gängige Praxis.
Gibt es bekannte Probleme?
Wird durch dieses Setup selbst verursacht – nein.
Wird das die Leistung beeinträchtigen?
In gewisser Weise schon: Wie jeder andere Load Balancer (und das ist es) wird es beim Puffern und bei TCP-Sockets zu Verzögerungen kommen.
Antwort2
Ist es in Ordnung, Nginx im Host zu verwenden, der den Datenverkehr an mehrere verschiedene, dockerisierte Nginx weiterleitet?
Ja. Dies ist eine Möglichkeit, dies zu tun.
Gibt es bekannte Probleme?
Die Hostinstanz von NGINX ist nicht in Containern untergebracht, was die Konfiguration erschweren kann. Eine andere gängige Methode hierfür ist ein an den Port gebundener Docker-Container
80
,443
der den gesamten eingehenden Datenverkehr verarbeitet und an den entsprechenden Container umleitet.Schließlich haben andere Container-Orchestrierungssysteme wie Kubernetes das Konzept
Ingress
integriert und ermöglichen die Konfiguration genauso, wie Sie einen Container in Docker Compose konfigurieren würden. Der Vorteil von Kubernetes Ingress besteht darin, dass es auf mehrere Server hoch- und herunterskaliert werden kann, während Sie bei Docker Compose stärker eingeschränkt sind.Wird das die Leistung beeinträchtigen?
Ein zusätzlicher Hop zum Zielcontainer wirkt sich zwar negativ auf die Leistung aus, ist aber eine gängige Vorgehensweise.