msgbartop
Tips de administración de servidores y herramientas Web
msgbarbottom

Nginx – web server y reverse proxy

junio 9, 2010 Publicado en Escalabilidad, InfraEstructura con 34 Comentarios


Nginx - web server y reverse proxy

Nginx es un servidor web del estilo de lighttpd, donde su proposito principal es servir contenido estatico de manera rapida y eficiente, llegando a tener un desempeño superior al tradicional apache. Fue desarrollado especificamente para el sitio ruso rambler por Igor Sysoev hace ya mas de 5 años,  si bien es relativamente nuevo comparado con sus similares, ha venido tomando fuerza y a hoy esta en el 4.7% de los sitios mas visitados.

Dentro de sus caracteristicas HTTP basicas ofrece:

  • Servir archivos estaticos e index
  • Autoindexado
  • Proxy de reversa acelerado, con posibilidad de cache, balanceo de carga simple y tolerancia a fallas
  • Soporte acelerado de servidores FastCGI remotos con cache, balanceo de carga simple y tolerancia a fallas
  • Arquitectura modular. Filtros incluyendo gzipping, XSLT, SSI y redimensionamiento de imagenes
  • Soporte SSL y TLS SNI

Caracteristicas HTTP adicionales:

  • Virtual servers basados en Nombre y en Ip
  • Soporte a conexiones persistentes
  • Configuración flexible
  • Reconfiguración y upgrade en linea sin necesidad de detener el servicio
  • Definición de formatos personalizados para logs, escritura en log por lotes, rotación rapida de logs
  • Redirección de errores con codigo 3xx-5xx
  • Modulo de rewrite (comparado con el de apache tiene sus limitaciones)
  • Control de acceso basado en la IP del cliente y autenticación basica HTTP
  • Streaming de FLV
  • Permite configurar limites de conexiones simultaneas o peticiones desde una dirección IP
  • Tiene perl embebido
  • Un proceso maestro y multiples procesos worker. Los procesos worker se ejecutan como usuario sin privilegios
  • 10.000 conexiones HTTP inactivas consumen 2.5M de memoria
  • Operaciones de copiado de datos se mantienen al minimo posible

Dentro de las plataformas donde se ha probado se encuentran:

  • FreeBSD 3  — 8 / i386; FreeBSD 5  — 8 / amd64;
  • Linux 2.2  — 2.6 / i386; Linux 2.6 / amd64;
  • Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;
  • MacOS X / ppc, i386;
  • Windows XP, Windows Server 2003.

En la proxima entrada describire como instalar y configurar Nginx para un sitio web dinamico.

Tags: , , , , , , ,