nginx - 我可以配置一个全局错误文档吗?

Clu*_*ess 7 nginx

我有一个包含一大堆server {}块的 nginx 配置。我想在它们之间共享错误页面,但其中许多具有不同的文档根。我可以使用类似的配置

error_page   404              /404.html;
error_page   500 502 503 504  /50x.html;
Run Code Online (Sandbox Code Playgroud)

在服务器块之外,它被共享,但是我必须将这些相同的文档放在所有根目录中,或者有类似的规则

location = /404.html {
    root /srv/http/errors;
}
location = /50x.html {
    root /srv/http/errors;
}
Run Code Online (Sandbox Code Playgroud)

在我所有的服务器块中。

有没有一种方法可以共享这些文档而无需一遍又一遍地重复自己或在文件系统中拥有许多副本?

wom*_*ble 12

使用 include 指令的魔法来指定所有必要的样板,然后只include /etc/nginx/standard-error-pages.conf在每个 vhost 中(使其成为配置管理系统中标准 vhost 模板的一部分)。这也使得覆盖特定虚拟主机的错误页面变得非常容易(通过不将包含放入该虚拟主机配置中)。