我有一个包含大量块的 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 配置中)。