Entradas con la etiqueta “nginx”

Página de mantenimiento con nginx

11 de agosto, 2011 - por | | Sistemas, Tips

En varios de nuestros proyectos utilizamos nginx como servidor HTTP. A veces solo, y otras como proxy de Apache sirviendo únicamente contenidos estáticos (mira este otro post para ver las ventajas de hacer ésto).

En cualquier sitio web te ves obligado en algún momento a poner el sitio offline: por tareas de mantenimiento de sistemas, por nuevas versiones del código, por cambios en la infraestructura, etc. Puesto que debes informar siempre al usuario de lo que pasa en tu sitio, debes tener preparada para todas esas ocasiones una página que indique que el servicio no está disponible.

En nginx eso se consigue colocando en el fichero de configuración lo siguiente:


server {
        error_page 503 @maintenance;
        location @maintenance {
                rewrite ^(.*)$ /503.html break;
        }
}

El nombre del fichero puede ser cualquiera que tú elijas. Lo que hace nginx es que siempre que existe ese fichero (en el $document_root), redirige cualquier petición que le llega a esa página. Y lo hace, además, devolviendo un código de estado 503. Puedes comprobar ésto en el Header de la página con cualquier herramienta popular tipo Firebug (documentación en inglés).

Nginx como proxy de Apache para servir contenidos estáticos

28 de enero, 2011 - por | 3 comentarios | Linux, Sistemas

Si sueles utilizar Apache para tus sitios, estarás acostumbrado a la magnitud de sus procesos: son grandes, muy exigentes con la memoria, y relativamente lentos hasta que son lanzados. Evidentemente, ésto no tiene por qué ser cierto en todos los casos; se puede ajustar bastante para que tenga un comportamiento más liviano, y con el tiempo han ido surgiendo alternativas al modelo tradicional de procesamiento (MPM) que consiguen reducir mucho esos puntos negativos.

Ahora bien, en ocasiones uno quiere o necesita seguir manteniendo Apache en su modo tradicional, en una configuración típica con PHP o Python, por diferentes razones: te puede haber convencido su estabilidad; puede que no quieras sacrificar algunos módulos clásicos (como el mod_rewrite); no encuentras la misma actividad en las comunidades de los servidores alternativos, etc. Nosotros nos hemos visto en esa situación, y hemos encontrado una forma, ya bastante popular, de reducir los aspectos negativos de Apache sin renunciar a sus cosas buenas: utilizar Nginx para servir los contenidos estáticos y dejar Apache para todo lo demás.

Si te animas a probar esta solución (y hay un montón de información en la red para implementarla), te encontrarás con: 1) una reducción sustancial del uso de memoria; 2) un correspondiente aumento de capacidad de cacheo a nivel de disco; 3) mayor consistencia en la separación de las tareas del sistema; 4) un rendimiento más ágil y rápido en el servidor y, por lo tanto, en tu sitio. ¿Se puede pedir más? :)