nginx не будет отображать страницу ошибки в подкаталоге корня документа

Вот фрагмент моей конфигурации nginx:

server {
    error_page 500 /errors/500.html;
}

Когда я вызываю 500 в моем приложении, Chrome просто показывает страницу по умолчанию 500 (Firefox и Safari показывают пустую страницу), а не мою страницу с ошибкой.

Я знаю, что файл существует, потому что я могу посетить http://server/errors/500.html и я вижу страницу. Я также могу переместить файл в корень документа и изменить конфигурацию так:

server {
    error_page 500 /500.html;
}

и nginx корректно обслуживает страницу, поэтому не похоже, что это что-то неправильно настроено на сервере.

Я также попробовал:

server {
    error_page 500 $document_root/errors/500.html;
}

а также:

server {
    error_page 500 http://$http_host/errors/500.html;
}

а также:

server {
   error_page 500 /500.html;
   location = /500.html {
       root /path/to/errors/;
   }
}

без удачи

Это ожидаемое поведение? Должны ли страницы с ошибками существовать в корне документа или я упускаю что-то очевидное?


Обновление 1: это также не удается:

server {
    error_page 500 /foo.html;
}

когда foo.html действительно существует в корне документа. Кажется, что-то еще перезаписывает мою конфигурацию, но этот блок - единственное место где-либо в /etc/nginx/* что ссылается на error_page директивы.

Есть ли другое место, где можно настроить конфигурацию nginx?

2 ответа

Попробуйте добавить

proxy_intercept_errors on;

или же

fastcgi_intercept_errors on;

в блоке сервера в зависимости от вашей конфигурации.

Этот вид конфигурации работает нормально:

  error_page   500 502 503 504  /500.html;
    location = /500.html {
        root   /home/static/pages;
    }

Попробуй это:

сервер { error_page 500 =200 /errors/500.html; }

это должно отправить http статус 200, чтобы браузер отобразил вашу страницу. При статусе по умолчанию (который равен 500) браузер, вероятно, показывает свою собственную страницу с ошибкой и игнорирует ваш контент, даже если он отправлен сервером.

С уважением, Адам

Другие вопросы по тегам