De acuerdo a es­ta­dí­s­ti­cas de W3Tech, Apache sigue siendo ac­tua­l­me­n­te el servidor web más utilizado, pues más del 50 por ciento de ope­ra­do­res web alrededor del mundo lo utilizan. Sin embargo, si se tiene en cuenta a las 10.000 páginas web más visitadas, en vez de a la totalidad de ellas, el panorama es diferente: solo alrededor del 30 por ciento de estas webs están basadas en el veterano servidor publicado en 1995. Dentro del top 1.000 solo un 27 por ciento lo utiliza. Esto se debe, en primer lugar, a la cantidad de­s­pro­po­r­cio­na­da de páginas web ubicadas entre las 1.000 webs más visitadas que utilizan Google como servidor web (todas las webs de Google funcionan a través de estos se­r­vi­do­res). Por otro lado, este resultado también se debe al rápido aumento de la po­pu­la­ri­dad de nginx, el software ruso para se­r­vi­do­res web. Mientras en 2010, con tan solo un 4 por ciento del mercado, el software publicado bajo licencia BSD no era más que una al­te­r­na­ti­va a Apache, hoy en día es utilizado por uno de cada dos proyectos online.

¿Qué es nginx?

La pro­gra­ma­ción de nginx estuvo a cargo del de­sa­rro­lla­dor ruso Igor Sysoev, quien pu­bli­ca­ría su primera versión en 2004. Desde entonces, la atención se ha co­n­ce­n­tra­do en el de­sa­rro­llo de un servidor que se ca­ra­c­te­ri­ce por un re­n­di­mie­n­to muy alto, que sirva al mayor número de clientes posible al mismo tiempo y que, además, consuma la menor cantidad de recursos. Dada la creciente po­pu­la­ri­dad y pro­li­fe­ra­ción del servidor web, Sysoev crearía, en 2011, nginx Inc. Desde entonces, la empresa comercial es re­s­po­n­sa­ble del de­sa­rro­llo del software y ofrece, además de la versión gratuita estándar, nginx Plus, una versión de pago con servicio de asi­s­te­n­cia técnica y funciones adi­cio­na­les como un servicio de balanceo de carga mejorado.

Como Apache, nginx es un software modular. Esto significa que las di­fe­re­n­tes ca­ra­c­te­rí­s­ti­cas son pre­se­n­ta­das en forma de módulos y, como ad­mi­ni­s­tra­dor, pueden ser activadas o des­ac­ti­va­das. Como co­n­se­cue­n­cia, el usuario goza de las si­guie­n­tes ca­ra­c­te­rí­s­ti­cas:

  • Ap­pli­ca­tion Ac­ce­le­ra­tion (ace­le­ra­dor de apli­ca­cio­nes) agiliza la entrega de co­n­te­ni­dos.
  • Servidor proxy inverso para la ace­le­ra­ción web (HTTP, TCP, UPD) o como proxy de correo ele­c­tró­ni­co (IMAP, POP3, SMTP).
  • Cifrado TLS para una tra­n­s­fe­re­n­cia de datos segura.
  • Gestión de ancho de banda para un mejor re­n­di­mie­n­to.
  • Balanceo de carga con re­orie­n­ta­ción de so­li­ci­tu­des para disminuir la carga del servidor.
  • Streaming de vídeo para re­pro­du­cir archivos en formato MP4 y FLV.

Mientras que Apache abre un nuevo proceso o hilo para cada solicitud del cliente, nginx trabaja enfocado a eventos. Como co­n­se­cue­n­cia, puede procesar so­li­ci­tu­des de forma asíncrona, ahorrando memoria y espacio. Este software de servidor es soportado por una gran variedad de sistemas ope­ra­ti­vos, in­clu­ye­n­do variantes de UNIX / Linux, Mac OS o Windows.

Instalar y co­n­fi­gu­rar nginx

Los usuarios de la edición Plus (de pago) reciben asi­s­te­n­cia técnica por parte del equipo de nginx durante el proceso de in­s­ta­la­ción. Por lo general, la in­s­ta­la­ción se hace uti­li­za­n­do un gestor de paquetes, pues la mayoría de di­s­tri­bu­cio­nes Linux tienen el paquete nginx instalado por defecto en su re­po­si­to­rio. Sin embargo, si el paquete no está incluido, el código fuente se puede descargar rápido y fá­ci­l­me­n­te desde la página web oficial del proyecto. A co­n­ti­nua­ción, te mostramos cómo instalar y co­n­fi­gu­rar nginx en un servidor Linux:     1. Con el siguiente comando es posible ac­tua­li­zar el gestor de paquetes para que la in­s­ta­la­ción (que se inicia con el comando en la segunda línea de código) se base en la última versión del paquete de nginx.   

sudo apt-get update
sudo apt-get install nginx

2. Por lo general, nginx se inicia justo después. Para comprobar si el software funciona co­rre­c­ta­me­n­te, accede a la página de destino de nginx uti­li­za­n­do el nombre de dominio del servidor o la dirección IP pública en tu navegador. Si el programa se ha instalado sa­ti­s­fa­c­to­ria­me­n­te, verás el siguiente mensaje:

3. Todo lo que se necesita para co­n­fi­gu­rar nginx lo en­cue­n­tras en el di­re­c­to­rio /etc/nginx, in­clu­ye­n­do el archivo de co­n­fi­gu­ra­ción principal nginx.conf. Para que se efectúen los cambios rea­li­za­dos en este archivo, es necesario reiniciar el servidor con alguno de los si­guie­n­tes comandos:

sudo service nginx reload
sudo service nginx restart

Con los pa­rá­me­tros stop y start puedes iniciar o parar co­m­ple­ta­me­n­te el servicio.

4. La sintaxis del archivo de co­n­fi­gu­ra­ción tiene las si­guie­n­tes ca­ra­c­te­rí­s­ti­cas:

  • Ajustes: todos los ajustes se inician con los re­s­pe­c­ti­vos nombres de las variables. Los ar­gu­me­n­tos se conectan o separan por medio de espacios y siempre van aco­m­pa­ña­dos de un punto y coma al final.
worker_connections 768;
  • Ajustes genéricos: algunos ajustes, como la variable events, incluyen ar­gu­me­n­tos que, a su vez, re­pre­se­n­tan ajustes con sus propios ar­gu­me­n­tos. Estas su­b­di­re­c­ti­vas se enmarcan con llaves ({}).
events {
    worker_connections 768;
    multi_accept on;
}
  • Amoha­di­lla (#): las di­re­c­ti­vas (in­s­tru­c­cio­nes) que están des­ha­bi­li­ta­das son pre­ce­di­das por una al­moha­di­lla. Cuando se elimina la marca, se activa la co­n­fi­gu­ra­ción co­rre­s­po­n­die­n­te del servidor. Por ejemplo, en el caso de
# multi_accept on;

la opción para aceptar varios clientes al mismo tiempo está des­ac­ti­va­da.

  • Saltos de línea y espacios múltiples: nginx in­te­r­pre­ta los saltos de línea y múltiples espacios como un único espacio. Al co­n­fi­gu­rar nginx, es posible apro­ve­char esta ventaja y velar por una es­tru­c­tu­ra clara y legible del archivo de co­n­fi­gu­ra­ción. 

5. Para acceder a más in­fo­r­ma­ción acerca de los módulos in­di­vi­dua­les, así como a otros tu­to­ria­les para la co­n­fi­gu­ra­ción de se­r­vi­do­res proxy basados en un servidor nginx, puedes visitar la do­cu­me­n­ta­ción oficial en su página web.

¿Qué hace de nginx un software tan popular?

El hecho de que la po­pu­la­ri­dad de nginx esté en ascenso tiene varias razones. En primer lugar, cabe mencionar que este software para se­r­vi­do­res web se adapta de forma óptima a las ne­ce­si­da­des actuales de muchos proyectos web. nginx no solo logra ex­ce­le­n­tes re­su­l­ta­dos en el pro­ce­sa­mie­n­to de un gran número de so­li­ci­tu­des de los clientes, sino que también aprovecha efi­ca­z­me­n­te los recursos. En co­n­se­cue­n­cia, este software es la solución perfecta a la potencia limitada de co­ne­xio­nes móviles, pe­r­mi­tie­n­do que los pro­pie­ta­rios de páginas web puedan ofrecer su contenido a usuarios de di­s­po­si­ti­vos móviles lo más rápido posible. Otra de las ca­ra­c­te­rí­s­ti­cas que favorecen a este proyecto ruso de código abierto son sus po­si­bi­li­da­des de apli­ca­ción, donde además de la variante clásica de servidor web HTTP, nginx también ofrece buenos re­su­l­ta­dos como servidor proxy de correo ele­c­tró­ni­co o como ba­la­n­cea­dor de carga. Sin embargo, nginx no siempre es la mejor opción como servidor web: la rea­li­za­ción de proyectos de hosting co­m­pa­r­ti­do, en el que los recursos del servidor se controlan mediante áreas pro­te­gi­das por co­n­tra­se­ñas o re­di­re­c­cio­nes internas, resulta algo co­m­pli­ca­da. Dichas secciones y rewrites solo pueden aplicarse en el archivo de co­n­fi­gu­ra­ción central y solo se im­ple­me­n­tan re­ini­cia­n­do el servidor. Como co­n­se­cue­n­cia, se pueden presentar posibles fallos que afectarán, por igual, a todos los proyectos que comparten el hosting. En este área, el servidor web Apache ofrece una gran ventaja, en la medida en que los ajustes in­di­vi­dua­les se registran en archivos .htaccess separados.

Ir al menú principal