Lösung für Nginx, das nicht zur Upstream-Adresse springt

Lösung für Nginx, das nicht zur Upstream-Adresse springt

Vorwort

Heute bin ich in Nginx auf ein sehr seltsames Problem gestoßen. Als der Front-End-Tomcat auf die Seite sprang, sprang er zur Upstream-Adresse und meldete direkt 404, aber einige Seitenzugriffe waren normal.

http://tomcat/tomcat-web/account/index

Wenn der Zugriff über die Intranet-IP direkt normal ist, kann festgestellt werden, dass es sich um ein Problem mit nginx handelt. Die nginx-Konfiguration ist wie folgt

Upstream-Tomcat { 
  Server 192.168.11.172:8061; 
  Server 192.168.11.172:8062;
  ip_hash;  
}  
 
 Server { 
  hören Sie 8060;  
  Servername www.example.com;

  Standort / { 
    Proxy-Passwort http://Tomcat; 
    Proxy_set_header Host $host:8060;
    Proxy_Set_Header X-Real-IP $Remote_Addr;
    proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
    Index Index.html Index.htm; 
  } 
 }

Nach einer Untersuchung wurde festgestellt, dass diese Adresse im Backend-Java-Code umgeleitet wurde und request.getServerPort () verwendet wurde. Wenn die Umleitung über nginx erfolgte, konnte der richtige Front-End-Port nicht abgerufen werden und die Standardrückgabe war immer noch 80. Wenn der Standard-Abhörport von nginx nicht 80 ist, kann response.sendRedirect nicht zur richtigen Adresse springen.

response.sendRedirect(getBasePath(Anfrage) + "Konto/Index");
  privater String getBasePath(HttpServletRequest-Anfrage) {
    Zeichenfolgenpfad = request.getContextPath();
    Zeichenfolge basePath = request.getScheme() + "://" + request.getServerName()
        + ":" + request.getServerPort() + Pfad + "/";
    Basispfad zurückgeben;
  }

Die Lösung besteht darin, die Portnummer zur Nginx-Konfigurationsdatei proxy_set_header hinzuzufügen

Proxy_Set_Header Host $host:$Proxy_Port;

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der Lösung für NGINX zum Umstieg von https auf http
  • So leiten Sie eine URL mit Nginx Rewrite um
  • So leiten Sie HTTP 301 auf einen Domänennamen mit www im Nginx-Server um
  • So zwingen Sie Nginx zur Verwendung des https-Zugriffs (http springt zu https)
  • So konfigurieren Sie die Nginx-Seitenumleitung entsprechend verschiedener Browsersprachen
  • Detaillierte Erläuterung der Nginx-Lösung des Homepage-Sprungproblems
  • Detaillierte Erklärung der Nginx 301-Weiterleitung zum Domänennamen mit www
  • So leiten Sie über den Nginx-Lastausgleich zu https um
  • Verwenden des Map-Befehls von Nginx zum Umleiten von Seiten
  • Lösen Sie das Problem, dass bei der Bereitstellung von thinkPHP 5 mit nginx nur auf die Startseite umgeleitet wird
  • Beispielcode für die Verwendung von Nginx zur Implementierung einer 301-Weiterleitung zum https-Stammdomänennamen
  • Nginx verbietet den direkten Zugriff über IP und leitet auf eine benutzerdefinierte 500-Seite weiter
  • Detaillierte Erläuterung der Nginx-Rewrite-Jump-Anwendungsszenarien
  • Detaillierte Erklärung, wie man HSTS in nginx aktiviert, um den Browser zu zwingen, auf HTTPS-Zugriff umzuleiten
  • Implementierung des Umschreibesprungs in Nginx
  • Detaillierte Erläuterung der Standortübereinstimmung und der Umleitung in Nginx
  • Versteckte Nginx-Weiterleitung (Browser-URL bleibt nach der Weiterleitung unverändert)

<<:  Implementierung der Funktion der kreisförmigen prozentualen Fortschrittsbalkenkomponente von Vue

>>:  Analyse langsamer Einfügefälle aufgrund großer Transaktionen in MySQL

Artikel empfehlen

Beispielcode zum Implementieren schöner Uhranimationseffekte mit CSS

Ich suche einen Job!!! Vorbereitung: Zunächst ein...

JS generiert eindeutige ID-Methoden: UUID und NanoID

Inhaltsverzeichnis 1. Warum NanoID UUID ersetzt 2...

Grafisches Tutorial zur Installation der komprimierten Version von MySQL 8.0.15

In diesem Artikel wird die Installationsmethode d...

Teilen Sie 9 Linux Shell Scripting Tipps für die Praxis und Interviews

Vorsichtsmaßnahmen 1) Interpreter am Anfang hinzu...

Architektur und Komponentenbeschreibung der privaten Docker-Bibliothek Harbor

In diesem Artikel wird die Zusammensetzung der Ha...

MySQL-Parameterbezogene Konzepte und Abfrageänderungsmethoden

Vorwort: In einigen früheren Artikeln haben wir h...

4 Funktionen, die durch das Transform-Attribut in CSS3 implementiert werden

In CSS3 können mit der Transformationsfunktion vi...

So passen Sie Docker-Images mit Dockerfile an

Anpassen von Bildern mit Dockerfile Unter Bildanp...

Detaillierte Analyse von MySQL-Datenbanktransaktionen und -Sperren

Inhaltsverzeichnis 1. Grundlegende Konzepte SÄURE...

Beispiel für die Implementierung eines Skeleton-Bildschirms mit Vue

Inhaltsverzeichnis Verwendung des Skelettbildschi...