nginx: error_page não funciona

3

Eu tento configurar uma página de manutenção para meu aplicativo rails, usando este snipplet.

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

Isso funciona na medida em que a presença do maintenance.html faz com que o servidor retorne um 503. Mas ele retorna a minimum_page nginx padrão, não minha maintenance.html. Por quê?

nginx 1.0.12 no Ubuntu 10.04 LTS

A configuração completa do vhost: link

    
por iGEL 01.03.2012 / 13:12

1 resposta

4
As diretivas

"if" e "return" fazem parte do ngx_rewrite_module. Como você declara essa condição no nível do servidor, você não terá a chance de usar nginx para lidar com error_page.

Deixe sua configuração clara:

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 {
}
    
por 01.03.2012 / 14:56