Fehlermeldungen von Webanwendungen vom HTTP-Server bereitstellen

Fehlermeldungen von Webanwendungen vom HTTP-Server bereitstellen

Ich habe nginx als HTTP-Server mit Tomcat als Backend (mit Proxy_Pass). Das funktioniert prima, aber ich möchte meine eigenen Fehlerseiten definieren (404, 500 usw.) und dass diese von nginx und nicht von Tomcat bereitgestellt werden. Ich habe beispielsweise die folgende Ressource:

https://domain.com/resource

die nicht existiert. Wenn ich diese URL [GET], erhalte ich von Tomcat und nicht von nginx die Meldung „Nicht gefunden“.

Ich möchte, dass nginx jedes Mal, wenn Tomcat mit einer 404-Fehlermeldung (oder einer anderen Fehlermeldung) antwortet, selbst eine Nachricht an den Benutzer sendet: eine für nginx zugängliche HTML-Datei.

Die Konfiguration meines Nginx-Servers ist ganz einfach:

location / {
    proxy_pass   http://localhost:8080/<webapp-name>/;
}

Und ich habe Port 8080, also Tomcat, so konfiguriert, dass er von außerhalb dieser Maschine nicht zugänglich ist.

Ich glaube nicht, dass die Verwendung unterschiedlicher locationAnweisungen in der Nginx-Konfiguration funktioniert, da einige Ressourcen von der URL abhängen:

https://domain.com/customer/<non-existent-customer-name>/[GET]

Gibt immer 404 (oder eine andere Fehlermeldung) zurück, während:

https://domain.com/customer/<existent-customer>/[GET]

Gibt alles andere als 404 (der Kunde existiert) zurück.

Gibt es eine Möglichkeit, Tomcat-Fehlermeldungen (Anwendungsserver) mit Nginx (HTTP-Server) zu übermitteln? Um die von der proxy_passDirektive gesendete Nachricht zu überprüfen und entsprechend zu reagieren?

Antwort1

Ok, ich habe es gefunden. Im serverAbschnitt der Nginx-Site-Konfiguration, den ich verwende:

error_page 404 /404.html;
location = /404.html {
    root /var/www/nginx;
}

location / {
    proxy_pass http://localhost:8080/api/;
    proxy_intercept_errors on;
}

Sie müssen proxy_intercept_errors onfür nginx hinzufügen, umfang sie ab. Nginx fängt nur die Fehler ab, die Sie mit definiert haben error_page.

verwandte Informationen