Inicio > apache, capistrano, rails > Usemos 503 para nuestras páginas de mantenimiento

Usemos 503 para nuestras páginas de mantenimiento

Martes, 28 de julio de 2009 Rafa García Dejar un comentario Ir a comentarios

La mayor parte de la documentación que hay por ahí sobre como configurar Apache para poder usar la tarea de Capistrano deploy:web:disable es usar la directiva RewriteRule para ver si existe la página de mantenimiento.

Aparentemente está bien, pero no es así porque no cambia el código de la respuesta. Los clientes recibirán un 200 OK, indicando de que el servidor está funcionando como debe. El código de estado correcto debiera ser 503 Service Unavailable. Con un 503, conseguiremos prevenir que los motores de búsqueda indexen nuestra página de mantenimiento, a los que usan nuestra API les haremos la vida mas fácil, las peticiones AJAX pueden ser tratadas correctamente cuando el site se ha caído, etc.

La configuración de apache para realizar esto es la siguiente:

El flag redirect=503 parece un poco raro, aquí os pongo un extracto de la sección de flags de la documentación de mod_rewrite:

While this is typically used for redirects, any valid status code can be given here. If the status code is outside the redirect range (300-399), then the Substitution string is dropped and rewriting is stopped as if the L flag was used.

En definitiva, que a RewriteRule puedes ponerle como segundo argumento lo que sea y el flag last no es necesario porque se aplica automáticamente. Pongo como path ‘-’ y además el flag last a modo informativo de todos modos.


Nota: Esto es una traducción (muy) libre del artículo de Chris K. (http://www.shiftcommathree.com/articles/make-your-rails-maintenance-page-respond-with-a-503).

Categories: apache, capistrano, rails Tags: , ,
  1. Viernes, 31 de julio de 2009 a las 17:18 | #1

    Hay un pequeño problema con esto, los sistemas de monitorización seguramente acaben saltando, porque suelen esperar un 200, un 503 tiene toda la pinta de que den el error.

    Un pequeño apunte: el flag redirect también es muy conveniente para no perder indexación en nuestros sites cuando estamos redirigiendo dominios, sólo hay que poner el valor 301.

  2. admin
    Jueves, 6 de agosto de 2009 a las 19:30 | #2

    @therobot
    Siendo estrictos el sistema de monitorización debiera saltar porque el servicio no está disponible, se que puede ser un poco molesto pero la realidad es que el servicio está “fallando”(no está disponible).

    Lo del redirect 301 no entiendo para que quieres aplicarlo aquí, si pones un 301 le estás diciendo que estás moviendo permanentemente el site a la página de error ¿? Creo que no lo he entendido o ¿es información extra?.

  1. Sin trackbacks aún.