Nginx add_header für eine 50 * Seite


19

Ich versuche derzeit, Nginx zu veranlassen, der Antwort einen Header hinzuzufügen, wenn eine Art 50 * -Fehler gesendet wird. Ich habe bereits eine add_header-Direktive im http-Block, die für alle Anfragen berücksichtigt wird, außer es scheint Fehler zu geben. Ich habe auch folgendes in einem meiner vhosts ausprobiert:

location /mediocregopheristhecoolest {
    add_header X-Test "blahblahblah";
    return 502;                                                                                                    
}       

Wenn ich auf diese Seite gehe, erhalte ich eine 502, aber keinen Header. Ist das einfach etwas, was Nginx nicht macht, oder mache ich es falsch?


Könnten Sie die Ausgabe von $ curl -I <url> // mediocregopheristhecoolest
Chida

Antworten:


21

In der Dokumentation heißt es: add_header "Fügt das angegebene Feld einem Antwortheader hinzu, sofern der Antwortcode 200, 204, 206, 301, 302, 303, 304 oder 307 entspricht. Ein Wert kann Variablen enthalten." Bei einem 502 funktioniert das also nicht.

Ich habe vergessen hinzuzufügen, dass Sie das Modul " Third Party Headers More" verwenden können , um Header zu anderen Codes hinzuzufügen. Sie müssen wahrscheinlich neu kompilieren, um es hinzuzufügen.


Siehe Kommentar von marat: Die neue Nginx-Version unterstützt das Setzen des Headers unabhängig vom Antwortcode
Laurens Rietveld

44

Seit Nginx 1.7.5 können Sie alwaysunabhängig vom Antwortcode einen Header hinzufügen:

add_header X-Test "blahblahblah" always;

1
Leider ist die Version in Debians Repos derzeit veraltet (1.6.x), aber nginx unterhält ein eigenes Repository mit dem neuesten stabilen Build (1.8.x im Moment).
Kungphu

Wenn Sie ein bereits funktionierendes Debian-System aktualisieren möchten, ist Debian-Backports sicherer ... packages.debian.org/jessie-backports/httpd/nginx Das Upstream-Paket verwendet eine andere Paketorganisation (kann zu Ausfallzeiten anstelle des reibungslosen Nginx-Upgrade-Mechanismus führen) ). Und sein postrm-Skript entfernt die Protokolle. Und ein paar andere kleine Unterschiede ...
Lajos Veres
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.