Cómo poner tu sitio en "huelga" (mantenimiento) en nginx

En menos de lo que canta un gallo es 18 de enero de 2011, y lo que quiere decir es que vamos a cerrar el sitio web de Mozilla Hispano en protesta por las leyes SOPA y PIPA en Estados Unidos, y su homóloga y ya aprobada la ley Sinde-Wert en España, junto a otras leyes que se han gestado en diferentes países de hispanoamérica, como la ley Döring en México, Lleras en Colombia (por suerte no aprobada) y por lo que pueda venir.

Para ello hemos tenido que configurar Nginx (nuestro servidor frontend) para que sirva una página de protesta, al mismo tiempo que la web no sea penalizada por ello (en Google, por ejemplo). Lo que hay que hacer principalmente es que todas las peticiones NO sean redirigidas y en su haber se encuentre una respuesta 503 por parte del servidor. Así que manos a la obra…

Tenemos que buscar el archivo de configuración de nuestro sitio, que si usamos un Debian o derivado estará en /etc/nginx/sites-enabled/nuestrositio.com.conf.

Ahora, en la parte del «server» principal (el que escucha a una IP y nombre de dominio, por poner una configuración que suele haber ahí), tenemos que añadir el código:

##
# Para SOPA, strike o incluso mantenimiento.
# Sólo habría que descomentar esto y listo ;)
##
error_page 503 @sopa;
return 503;
location @sopa {
rewrite ^(.*)$ /sopastrike.html break;
}

Por lo que veis, el archivo sopastrike.html tiene que estar en vuestro root de nginx (vamos, donde tenéis vuestra página, los archivos .html o .php… lo que sea). Nosotros en Mozilla Hispano vamos a usar una versión «tuneada» para contar lo que nosotros queremos, y lo tienes en github.

Simplemente haced un «# service nginx reload» para recargar la configuración.

Cuando hayáis terminado el mantenimiento o la huelga, podéis comentar todas esas líneas que hemos añadido y de nuevo recargar nginx con el comando de justo de aquí arriba.

¡Disfrutad de la huelga! Y si tienes dudas, no dudes en contarlo por aquí 😉