nginx - Kann ich ein globales Fehlerdokument konfigurieren?

7

Ich habe eine Nginx-Konfiguration mit einer ganzen Reihe von server {}Blöcken. Ich möchte Fehlerseiten zwischen allen teilen, aber viele von ihnen haben unterschiedliche Dokumentwurzeln. Ich kann eine Konfiguration wie verwenden

error_page   404              /404.html;
error_page   500 502 503 504  /50x.html;

außerhalb der Serverblöcke und es wird freigegeben, aber dann muss ich die gleichen Dokumente in alle Wurzeln legen oder Regeln wie haben

location = /404.html {
    root /srv/http/errors;
}
location = /50x.html {
    root /srv/http/errors;
}

in allen meinen Serverblöcken.

Gibt es eine Möglichkeit, diese Dokumente freizugeben, ohne mich immer wieder zu wiederholen oder viele Kopien im Dateisystem zu haben?

Ahnungslos
quelle

Antworten:

12

Verwenden Sie die Magie einer include-Direktive, um alle erforderlichen Boilerplates und dann nur include /etc/nginx/standard-error-pages.confin jedem vhost anzugeben (machen Sie es zu einem Teil der Standard-vhost-Vorlage in Ihrem Konfigurationsverwaltungssystem). Dies macht es auch sehr einfach, die Fehlerseiten für einen bestimmten vhost zu überschreiben (indem das Include nicht in diese vhost-Konfiguration eingefügt wird).

womble
quelle