我学会了如何让NGINX返回503
客户错误页面,但我找不到如何执行以下操作:
配置文件示例:
location / {
root www;
index index.php;
try_files /503.html =503;
}
error_page 503 /503.html;
location = /503.html {
root www;
}
正如您所看到的,根据上面的代码,如果在我的根目录中找到一个名为503.html
的页面,站点将把这个页面返回给用户。
但是虽然上面的代码在有人访问我的网站时可以正常工作
使用我的代码,用户仍然可以看到配置文件页面或除index.php
之外的任何其他页面。
问题是:
当503.html
出现在我的根文件夹中时,如何捕获对站点中所有页面的请求并将其转发到503.html
?
4条答案
按热度按时间7rtdyuoh1#
下面的配置适用于接近最新稳定的nginx
1.2.4
。我找不到一种方法来启用维护页面与使用if
,但显然根据IfIsEvil,这是一个确定的if
。touch /srv/sites/blah/public/maintenance.enable
。您可以rm
要禁用的文件。502
将被Map到503
,这是大多数人想要的,你不想给予谷歌一个502
。502
和503
页面。你的应用将生成其他错误页面。网上还有其他配置,但它们似乎在最新的nginx上不起作用。
7vux5j2d2#
更新日期:将“if -f”更改为“try_files”。
试试这个:
更多信息:
https://serverfault.com/questions/18994/nginx-best-practices
http://wiki.nginx.org/HttpCoreModule#try_files
moiiocjp3#
其他的答案都是正确的,但是要补充的是,如果您使用内部代理,您还需要在其中一个代理服务器上添加
proxy_intercept_errors on;
。比如说...
j5fpnvbx4#
多年以后,我现在使用的是完全自定义的错误消息。
HTML错误页存储在网站根目录下的/http-error目录中。