Назад | Перейти на главную страницу

Эффективное определение множества настраиваемых страниц ошибок nginx

Я создал несколько пользовательских HTML-страниц ошибок 4xx и 5xx для большинства ошибок, перечисленных на страница Википедии. Я бы хотел установить их на любой сервер nginx, который я настроил, не слишком сильно влияя на производительность.

Следуя документации, я придумал эту директиву конфигурации для ошибки:

error_page 404 /nginx/404.html;
location = /nginx/404.html {
        alias /usr/share/nginx/errors/404.html;
        internal;
}

Я положил это в /etc/nginx/snippets/errors.conf и могу включать фрагмент во все мои server блоки.

Однако это отлично работает ...

Предполагается около 50 location директивы каждому server блок на коробке.

Является ли это чрезмерным, и есть ли более эффективный способ добиться того же? Я избегал серверных операторов include, if и переписывал, думая, что для этого потребуется больше ресурсов сервера.

Если вы не сопоставляете каждую страницу ошибки с ее собственным местоположением, вы можете сделать это с помощью одной директивы местоположения:

error_page 402 /error/402.html;
error_page 403 /error/403.html;
error_page 404 /error/404.html; 
... etc. 

location = /error/ {
        alias /usr/share/nginx/errors/;
}