小编Bra*_*dan的帖子

nginx 不会在文档根目录的子目录中提供 error_page

这是我的 nginx 配置的一个片段:

server {
    error_page 500 /errors/500.html;
}
Run Code Online (Sandbox Code Playgroud)

当我在我的应用程序中导致 500 时,Chrome 只显示其默认的 500 页面(Firefox 和 Safari 显示空白页面)而不是我的自定义错误页面。

我知道该文件存在,因为我可以访问http://server/errors/500.html并看到该页面。我还可以将文件移动到文档根目录并将配置更改为:

server {
    error_page 500 /500.html;
}
Run Code Online (Sandbox Code Playgroud)

并且 nginx 正确地提供页面,所以它似乎不是服务器上配置错误的其他东西。

我也试过:

server {
    error_page 500 $document_root/errors/500.html;
}
Run Code Online (Sandbox Code Playgroud)

和:

server {
    error_page 500 http://$http_host/errors/500.html;
}
Run Code Online (Sandbox Code Playgroud)

和:

server {
   error_page 500 /500.html;
   location = /500.html {
       root /path/to/errors/;
   }
}
Run Code Online (Sandbox Code Playgroud)

没有运气。

这是预期的行为吗?错误页面是否必须存在于文档根目录中,或者我是否遗漏了一些明显的内容?


更新 1:这也失败了:

server {
    error_page 500 /foo.html;
}
Run Code Online (Sandbox Code Playgroud)

何时foo.html确实存在于文档根目录中。似乎其他东西正在覆盖我的配置,但此块是唯一/etc/nginx/*引用该error_page指令的地方。

还有其他地方可以设置nginx配置吗?

nginx custom-errors

5
推荐指数
1
解决办法
1810
查看次数

标签 统计

custom-errors ×1

nginx ×1