您的位置 首页 Nginx

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 {
}

关于作者: dawei

【声明】:金华站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章