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

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

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

error_page   404              /404.html;
error_page   500 502 503 504  /50x.html;

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

location = /404.html {
    root /srv/http/errors;
}
location = /50x.html {
    root /srv/http/errors;
}

在我所有的服务器块中。

有没有办法共享这些文档,而不必一遍又一遍地重复或在文件系统中保留许多副本?

答案1

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

相关内容