这是我的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配置的地方吗?
最佳答案
尝试添加
proxy_intercept_errors on;
要么
fastcgi_intercept_errors on;
在服务器块中取决于您的配置.
这种配置工作正常:
error_page 500 502 503 504 /500.html;
location = /500.html {
root /home/static/pages;
}
原文地址:https://www.jb51.cc/nginx/435642.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。