У меня есть приложение Sinatra, размещенное с Unicorn, и nginx перед ним. Когда приложение Sinatra ошибочно (возвращается 500), я хотел бы обслуживать статическую страницу, а не по умолчанию «Внутренняя ошибка сервера». У меня есть следующие Nginx конфигурации:nginx не обслуживает мою error_page
server {
listen 80 default;
server_name *.example.com;
root /home/deploy/www-frontend/current/public;
location/{
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 5;
proxy_read_timeout 240;
proxy_pass http://127.0.0.1:4701/;
}
error_page 500 502 503 504 /50x.html;
}
директива error_page есть, и я sudo'd, как WWW-данных (Ubuntu) и проверить, что я могу cat
файл, таким образом, это не проблема разрешения. С приведенным выше конфигурационным файлом и service nginx reload
страница, которую я получаю при ошибке, по-прежнему остается такой же «Внутренняя ошибка сервера».
Какая у меня ошибка?
Я знал, что это вопрос RTFM. Спасибо, что нашли время, чтобы дать отличный ответ! –
Просто быстрое примечание к 4-летнему ответу - теперь 'proxy_intercept_errors' работает для ошибок равных или больших до 300. – Tisho