У меня есть конфигурация nginx с целой кучей server {}
блоки. Я хочу поделиться страницами ошибок между ними всеми, но у многих из них разные корни документов. Я могу использовать такую конфигурацию, как
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
вне серверных блоков, и он становится общедоступным, но тогда я должен поместить те же документы во все корни или иметь такие правила, как
location = /404.html {
root /srv/http/errors;
}
location = /50x.html {
root /srv/http/errors;
}
во всех моих серверных блоках.
Есть ли способ поделиться этими документами, не повторяя себя снова и снова или не имея множества копий в файловой системе?
Используйте волшебство директивы include, чтобы указать весь необходимый шаблон, а затем просто include /etc/nginx/standard-error-pages.conf
в каждом виртуальном хосте (сделайте его частью стандартного шаблона виртуального хоста в вашей системе управления конфигурацией). Это также упрощает переопределение страниц ошибок для определенного виртуального хоста (не помещая включение в эту конфигурацию виртуального хоста).