So leiten Sie HTTP-Anfragen mit NGINX an eine Anwendung weiter, die auf Port 80 ausgeführt wird

So leiten Sie HTTP-Anfragen mit NGINX an eine Anwendung weiter, die auf Port 80 ausgeführt wird

Der Ubuntu-Server läuft,
Glassfish auf Port 80 (http) und 443 (https)
Nginx auf Port 8080 (http) und 8081 (https)

Das Ziel ist,
www.hostname01.comum auf Glassfish zuzugreifen,
www.hostname02.comum auf Nginx zuzugreifen

Die Frage ist,
ob dies mithilfe der Nginx-Proxy-Pass-Konfiguration oder mit anderen Einstellungen möglich ist.

Ich sehe Antworten, bei denen Nginx auf Port 80/443 läuft, da dies die Standard-HTTP-Anfrage ist. In meiner Umgebung lief jedoch Glassfish vor Nginx und ich bin nicht berechtigt, dessen Einstellungen zu ändern. Daher geht derzeit jede Anfrage an Glassfish, sofern keine Portnummer angegeben ist.
Ich darf jede andere Serverkonfiguration außer der Glassfish-Instanz bearbeiten.

Danke

Antwort1

Dies lässt sich nur erreichen, indem Sie eine zweite IP-Adresse an die Netzwerkschnittstelle binden und Glassfish explizit an die erste IP und nginx an die zweite IP binden.
Sobald eine beliebige Anwendung auf 0.0.0.0:80den Port lauscht, wird dieser für alle anderen Anwendungen gesperrt.
Sobald Sie dies getan haben, können Sie nginx anweisen, nur auf einer bestimmten Adresse zu lauschen, indem Sie den bindParameter in der listenDirektive wie folgt verwenden: listen 192.0.2.1:80 bind
Dies ist ein IP-Socket-Thema, nicht nur ein Konfigurationsthema.

verwandte Informationen