微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx:error_page不起作用

我尝试使用此snipplet为我的rails应用程序设置维护页面.

error_page 503 /system/maintenance.html;
if (-f $document_root/system/maintenance.html) {
  return 503;
}

这可以工作,只要maintenance.html的存在导致web服务器返回503.但它返回最小的Nginx认error_page,而不是我的maintenance.html.为什么?

在Ubuntu 10.04 LTS上的Nginx 1.0.12

完整的vhost配置:https://gist.github.com/1948225

最佳答案
“if”和“return”指令是ngx_rewrite_module的一部分.由于您在服务器级别声明了这样的条件,因此您没有机会让Nginx处理error_page.

使您的配置清晰:

root /home/igel/www/stage.example.com/current/public;
error_page 503 /system/maintenance.html;

location / {
       if ( -e /system/maintenance.html ) {
              return 503;
       }
}
location = /system/maintenance.html {
}

原文地址:https://www.jb51.cc/nginx/435070.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐