¿Qué es Nginx?

Categoría:  Sysadmin
Fecha: 05/04/2023
Nginx (pronunciado "engine-x") es un servidor web, proxy inverso y balanceador de carga de código abierto. Inicialmente creado por Igor Sysoev en 2002, Nginx ha ganado popularidad gracias a su rendimiento, estabilidad y bajo consumo de recursos en comparación con otros servidores web, como Apache.

Nginx es conocido por su capacidad para manejar miles de conexiones simultáneas con un uso mínimo de memoria, lo que lo convierte en una opción ideal para sitios web y aplicaciones con mucho tráfico. Además, es altamente escalable y puede adaptarse fácilmente a las necesidades cambiantes de un sitio web o aplicación.

que es nginx

Nginx se puede utilizar de distintas maneras:

  1. Servidor web: Nginx puede servir contenido estático y dinámico directamente a los clientes, funcionando como un servidor web tradicional.

  2. Proxy inverso o proxy cache: Nginx se puede configurar como un proxy inverso, lo que significa que puede recibir peticiones de clientes y reenviarlas a otros servidores en nombre del cliente. Esta función es útil para equilibrar la carga entre varios servidores, mejorar la seguridad y aumentar la eficiencia del cacheo.

  3. Balanceador de carga: Nginx puede distribuir las peticiones entrantes entre varios servidores, lo que permite equilibrar la carga de trabajo y evitar cuellos de botella en el rendimiento.


Nginx es compatible con una amplia variedad de sistemas operativos, incluyendo Linux, Windows, macOS y otros sistemas similares a Unix. Su configuración se basa en archivos de texto, lo que facilita su personalización y adaptación a diferentes entornos y necesidades. En Raiola Networks nos gusta Nginx funcionando sobre un Linux como AlmaLinux.

Índice del artículo
  • ¿Cómo funciona Nginx?
  • Nginx para servir contenido dinámico
  • Nginx como proxy inverso o reverse proxy
  • Nginx como balanceador de carga
  • ¿Es Nginx el mejor servidor web?

¿Cómo funciona Nginx?


Nginx funciona mediante una arquitectura basada en eventos y asíncrona, lo que le permite manejar múltiples conexiones simultáneas con un uso mínimo de recursos. Esta arquitectura es fundamental para el rendimiento y la escalabilidad de Nginx.

que es nginx y cómo funciona servidor web sitio web

Vamos a listar una serie de características que destacan en el funcionamiento de Nginx como servidor web o proxy inverso:

  1. Funcionamiento mediante Workers: Nginx utiliza un modelo de workers para manejar las peticiones entrantes. Un proceso maestro (master) es responsable de leer y validar la configuración, gestionar los procesos de workers y mantener registros. Los workers son procesos independientes encargados de procesar las peticiones de los clientes.

  2. Arquitectura basada en eventos: En lugar de crear un nuevo proceso o hilo para cada petición entrante, Nginx utiliza un enfoque basado en eventos. Los eventos representan acciones específicas, como recibir una petición de cliente o completar el envío de datos a un cliente.

  3. Procesamiento asíncrono y no bloqueante: Nginx utiliza E/S (entrada/salida) asíncrona y no bloqueante para manejar las conexiones. Esto significa que un worker puede atender varias peticiones simultáneamente sin esperar a que se complete la E/S de una petición antes de pasar a la siguiente. Este enfoque mejora la eficiencia y el rendimiento en comparación con servidores web basados en hilos o procesos.

  4. Gestión de peticiones: Cuando Nginx recibe una petición de un cliente, el worker correspondiente la analiza y determina cómo debe ser procesada en función de la configuración de Nginx. Si se trata de una petición de contenido estático, el worker lee el archivo del disco y lo envía al cliente. Para contenido dinámico o peticiones que requieren procesamiento adicional, Nginx puede actuar como un proxy inverso y reenviar la petición a otro servidor (como un servidor de aplicaciones).

  5. Configuración flexible: Nginx utiliza archivos de configuración de texto para especificar cómo se deben manejar las peticiones y qué acciones se deben realizar en función de diferentes criterios. Esto permite a los administradores personalizar el comportamiento de Nginx de acuerdo con las necesidades específicas de su aplicación o entorno. Sin embargo, estos archivos no son tan accesibles como los archivos .htaccess de Apache.


Nginx para servir contenido dinámico


Nginx no tiene soporte nativo para PHP, por lo que se utiliza PHP-FPM para manejar el procesamiento de scripts PHP. Al combinar Nginx con PHP-FPM, puedes crear una configuración de servidor web eficiente y escalable que sea capaz de manejar tanto contenido estático como dinámico.

servidores web nginx y cómo funciona conexiones

Cuando se utiliza Nginx junto con PHP-FPM, se establece una arquitectura donde Nginx actúa como el servidor web y PHP-FPM como el procesador de PHP. Nginx se encarga de las peticiones de contenido estático, mientras que PHP-FPM procesa el contenido dinámico generado por scripts PHP.

Este es el flujo que sigue una petición en un entorno de Nginx con PHP-FPM:

  1. Un cliente realiza una petición a través de un navegador web u otro cliente HTTP.

  2. Nginx recibe la petición y verifica si se trata de contenido estático o dinámico (PHP).

  3. Si la petición es para contenido estático, Nginx lo sirve directamente desde el sistema de archivos y devuelve la respuesta al cliente.

  4. Si la petición es para contenido dinámico (PHP), Nginx reenvía la petición al servidor PHP-FPM.

  5. PHP-FPM procesa el script PHP y genera la salida.

  6. PHP-FPM devuelve la salida a Nginx.

  7. Nginx envía la salida generada por PHP-FPM al cliente.


Al usar Nginx con PHP-FPM, se obtiene una configuración de servidor web altamente escalable y de alto rendimiento que puede manejar eficazmente tanto contenido estático como dinámico.

Nginx como proxy inverso o reverse proxy


Nginx es un proxy inverso (reverse proxy) muy potente, y su capacidad para actuar como un proxy inverso para otro servidor web ofrece una serie de ventajas en cuanto a rendimiento, escalabilidad y seguridad.

servidores web cómo funciona nginx conexiones

Cuando utilizamos Nginx como proxy inverso, básicamente estamos poniendo a Nginx al frente de nuestro servidor web backend. Esto significa que Nginx recibe las peticiones de los clientes y luego las reenvía al servidor web backend para ser procesadas. A continuación, el servidor backend devuelve la respuesta a Nginx, que finalmente la envía al cliente.

Utilizar Nginx como proxy inverso ofrece varias ventajas:

  1. Balanceo de carga: Nginx puede distribuir las peticiones entrantes entre varios servidores backend, lo que permite repartir la carga de trabajo y mejorar la escalabilidad y el rendimiento del sistema. Así, si tenemos un alto volumen de tráfico, Nginx garantiza que podamos escalar nuestra infraestructura facilmente.

  2. Caché: Nginx puede almacenar en caché el contenido generado por el servidor web backend, lo que reduce la carga en el servidor y mejora el tiempo de respuesta. Esto es especialmente útil para el contenido que no cambia con frecuencia y para archivos estáticos, ya que se sirve directamente desde la caché de Nginx en lugar de solicitarse cada vez en el servidor backend. En el caso de utilizar Apache como servidor backend, mejoraremos mucho la eficiencia al servir contenidos a los visitantes.

  3. Compresión: Nginx puede comprimir las respuestas antes de enviarlas al cliente, lo que reduce el tamaño de los datos transmitidos y acelera el tiempo de carga de las páginas. La compresión puede ser especialmente útil en entornos donde el ancho de banda es limitado o si se sirve contenido a usuarios con conexiones más lentas.


Estas solo son algunas de ellas. Realmente, el uso de Nginx como reverse proxy es un comodín que aporta flexibilidad a cualquier entorno web. Con un servidor web como Apache podemos interpretar los archivos .htaccess y, al mismo tiempo, Nginx servirá los archivos estáticos de forma muy optimizada.

Precisamente, en nuestros servidores VPS optimizados utilizamos Nginx como proxy inverso con el servidor web Apache.

Nginx como balanceador de carga


Además de sus funciones básicas, Nginx puede actuar como un balanceador de carga, distribuyendo las solicitudes de los usuarios entre varios servidores para repartir el trabajo y garantizar una alta disponibilidad en sitios web.

nginx y apache balanceador de carga conexiones

El uso de Nginx como balanceador de carga ofrece las siguientes ventajas:

  • Mayor capacidad para atender a más usuarios concurrentes.

  • Mejora de la tolerancia a fallos, ya que en caso de falla en un servidor, Nginx redirige automáticamente el tráfico a servidores disponibles.

  • Escalabilidad horizontal, puesto que permite agregar o eliminar servidores según las necesidades.


Para configurar Nginx como balanceador de carga, es necesario definir un grupo de servidores backend y crear una configuración que escuche las solicitudes entrantes y las reenvíe a dicho grupo. Por defecto, Nginx utiliza el algoritmo Round Robin para distribuir las solicitudes, pero es posible cambiar a otros algoritmos según las necesidades.

En resumen, el uso de Nginx como balanceador de carga es una estrategia teóricamente efectiva para mejorar el rendimiento y la disponibilidad en sitios web, especialmente en situaciones de alto tráfico o cuando se busca una solución escalable y tolerante a fallos.

¿Es Nginx el mejor servidor web?


Pues esto depende mucho de a quién le preguntes. A mí, personalmente, de todos los servidores web que existen, Nginx y LiteSpeed Web Server son los que más me gustan.

cómo funciona nginx sitios web

Si comparamos Nginx y Apache, evidentemente, por rendimiento la elección está clara. No obstante, actualmente, como cualquier sitio web utiliza el archivo .htaccess, puede ser interesante utilizar Nginx como proxy inverso para Apache.

Lo que está claro es que Nginx es mucho más rápido y ágil gestionando las conexiones que Apache, por lo que es una muy buena opción para servir archivos estáticos.

Todos los servidores web tienen sus pros y sus contras, y no podemos decir que Nginx sea el mejor servidor web, pero para nosotros en Raiola Networks es uno de los más recomendados por rendimiento y por flexibilidad de configuración.
¿Quieres un servidor VPS con Nginx? Prueba nuestros servidores VPS optimizados.
Álvaro Fontela
Álvaro Fontela

Alvaro Fontela es consultor WordPress especializado en WPO y rendimiento web, además de co-fundador y CEO de Raiola Networks.

Artículos relacionados

Si te ha gustado este post, aquí tienes otros que pueden ser de tu interés. ¡No dejes de aprender!

Tenemos 10 comentarios en ¿Qué es Nginx?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Avatar del autor del comentario

Dani

15/01/2017 a las 20:21

Que tal Alvaro,

Respecto al tema de Nginx, te puedo comentar que yo tengo una web alojada en un servidor con Nginx y realmente la velocidad de carga es muy buena, poco más de 1 segundo, pero me encuentro con un problema importante: La puntuación de Page Speed es realmente mala, sobre los 40 puntos en Mobil y los 50 en Escritorio, principalmente debido a que Google dice que no se está llevando a cabo la compresión Gzip (éste es el primer y más importante punto que me señala Page Speed Insghts o GTMetrix).
Lo curioso es que si analizas la web en checkgzipcompression.com la compresión sí está habilitada.

Tiene Nginx un problema con Page Speed? Por que no detecta la compresión?
Y ya de paso te pregunto:
Ocasiona (en un caso así) la baja puntuación en Page Speed problemas en el posicionamiento? (todo y tener buena velocidad de carga).

Gracias de antemano por tu respuesta!
Un saludo
Dani

Responder
Avatar del autor del comentario

Alvaro Fontela

16/01/2017 a las 02:09

Hola Dani, el problema es posible que venga porque te faltan reglas en el archivo de configuración de Nginx para que también se compriman los archivos javascript, ya que por defecto no viene activado.

Te dejo un enlace sobre como activarlo: enlace

Google dice que el PageSpeed influye en el posicionamiento, y es posible que sea un parámetro mas, simplemente debemos de tener un equilibrio entre puntuación de PageSpeed y viabilidad de la web, ya que no siempre es viable tener el 100 de PageSpeed sin dejar la web hecha un asco.

La velocidad de carga afecta en el crawl budget y eso afecta al SEO, tal y como indicamos en este articulo: enlace

Un saludo.

Responder
Avatar del autor del comentario

Dani

17/01/2017 a las 08:24

Alvaro,
Gracias por tu respuesta.
Si no voy equivocado el servidor utiliza Plesk y no VestaCP como indicas en el enlace para la activación.
Sabes si se podría utilizar la misma configuración para activar la compresión completa en Plesk?
Gracias de nuevo
Saludos
Dani

Responder
Avatar del autor del comentario

Alvaro Fontela

17/01/2017 a las 15:40

Si usas terminal SSH podrías usar el mismo proceso, pero OJO, no se como reacciona Plesk antes este tipo de modificaciones directas, en VestaCP lo hacemos así porque no existe otra forma de hacerlo.

Un saludo.

Responder
Avatar del autor del comentario

Dani

17/01/2017 a las 19:56

Ok
Gracias Alvaro
Saludos

Responder
Avatar del autor del comentario

Mike

14/03/2020 a las 21:55

Buenas noches Alvaro, justo tenemos el mismo problema con un directorio de empresas que tenemos alojado con vosotros, https://www.todoenlaces.com, la carga es más rápida que en el server antiguo, pero el Pagespeed es de 40 cuando antes era de 92, mismo fallo de la compresión desactivada. Os hemos enviado un ticket para saber donde se ubica el archivo de configuración de ngix.

Responder
Avatar del autor del comentario

Alvaro Fontela

20/03/2020 a las 12:06

Hola Mike, espero que ya te hayan contestado al tema del archivo de configuracion.

Sobre el tema de PageSpeed, he estado mirando tu web y dada la forma en la que esta creada la web, o antes tenias mod_pagespeed, o algo raro hay, ya que precisamente tienes problemas de PageSpeed por el tamaño de la web en objetos DOM y por exceso de CSS y eso no es problema del servidor web.

Responder
Avatar del autor del comentario

Mike

20/03/2020 a las 12:20

Gracias Alvaro, ahora conseguimos un pagespeed 88, el problema principal era que no teniamos la compresión n-gix activa. Tenemos activo WP Rocket y hemos probado desactivarlo y poner autooptimize, WP Fastest Cache, etc. pero el mejor rendimiento es con WP Rocket.

Responder
Avatar del autor del comentario

Alvaro Fontela

20/03/2020 a las 12:22

Si queréis probar cosas en ese sentido, os recomiendo probar el plugin Asset CleanUp: https://es.wordpress.org/pl...

Es bastante avanzado y deja jugar bastante con el JS y el CSS, tanto para cargar async como para mover al footer.

Responder
Avatar del autor del comentario

Mike

20/03/2020 a las 12:59

Muchas gracias Alvaro, lo probaremos a ver.

Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *