nginx:error_page不起作用

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

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

只要存在maintenance.html,就会使webserver返回503.但是它返回的是最小的nginx默认的error_page,而不是我的maintenance.html。 为什么?

Ubuntu 10.04 LTS上的nginx 1.0.12

完整的虚拟主机configuration: https : //gist.github.com/1948225

“if”和“return”指令是ngx_rewrite_module的一部分。 既然你在服务器级声明了这样的条件,你就不会有机会去处理error_page。

明确你的configuration:

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