Настройка страниц ошибок для nginx

При работе с web-ресурсом возникают ошибки, и причина их может быть совершенно различна — от опечатки в URL, до ошибок самого сервера. И если у нас внешним сервером является nginx — мы можем довольно удобно указать свое содержание, которое будет выводиться при той или иной ситуации. Во-первых это позволяет в какой-то мере замаскировать используемое ПО (т.к. определение по сигнатурам ответа становится невозможным); во-вторых — это визуальная кастомизация, которая положительно говорит о ресурсе в целом.

Указание своих страниц ошибок

Для того, чтоб nginx вместо встроенных шаблонов отдавал нужный нам контент — существует следующая конструкция (документация):

error_page 401 /401.html;
error_page 404 /404.html;

Которая нам говорит:

В случае возникновения ошибки с кодом 401 вывести страницу 401.html, которая находится в корне веб-ресурса, и т.д.

Под катом решение для множества хостов и пример страницы..

Собираем nginx из исходников

Постепенно переводя часть ресурсов с Apache на nginx возникла необходимость вывода листинга файлов (autoindex on, аналог Options +Indexes у Apache), но с возможностью некоторой его настройки (как минимум, это использование аналогов Apache HeaderName и ReadmeName).

В nginx этим занимается отдельный модуль под именем fancyindex, для запуска которого необходимо пересобрать весь nginx из исходников, добавив его в момент сборки.

Что бы не возникло проблем с текущими настройками и зависимостями, мы будем собирать точно такую-же версию, что у нас сейчас стоит. Получаем информацию об установленной версии и параметрах её сборки:

$ nginx -V
nginx version: nginx/1.6.2
built by gcc 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC)
...

Подробнее под катом