Qué es Nginx y qué hace en un servidor web
Autor: Redacción Domeny.ForSale Publicado
En breve: Nginx es un software de servidor que recibe peticiones de los navegadores y entrega los archivos de una web o reenvía el tráfico a una aplicación. También puede gestionar conexiones cifradas HTTPS, repartir el tráfico entre servidores y almacenar copias de las respuestas en caché. En un hosting gestionado, normalmente se encarga el proveedor; en un servidor propio, la configuración puede ser responsabilidad tuya.
¿Qué papel desempeña Nginx al abrir una página?
Nginx, que se pronuncia «engine-x», es ante todo un servidor HTTP, es decir, un programa que gestiona la comunicación utilizada para obtener páginas web. No debe confundirse con un servidor físico o una máquina virtual: Nginx se ejecuta en ese equipo junto con otros programas.
Cuando escribes la dirección de una web, DNS —el sistema que asocia nombres de dominio con direcciones de red— ayuda al navegador a encontrar el servidor. El navegador establece una conexión y envía una petición, por ejemplo, para obtener la página de inicio. Si el tráfico llega a Nginx, el programa decide cómo atenderlo según su configuración, teniendo en cuenta, entre otros datos, el nombre de dominio y la ruta de la dirección.
Nginx puede devolver directamente archivos estáticos, es decir, recursos guardados previamente: documentos HTML, hojas de estilo CSS, scripts JavaScript o imágenes. Sin embargo, no es un sistema de gestión de contenidos ni una base de datos. Por sí solo no crea el panel de una tienda ni calcula el contenido del carrito: esas tareas corresponden a la aplicación.
Proxy inverso, HTTPS y otros usos
Otra función importante de Nginx es la de proxy inverso, un intermediario que recibe las peticiones de los usuarios en nombre de la aplicación. El navegador se conecta con Nginx, que reenvía la petición al proceso o servidor correspondiente y devuelve la respuesta recibida. Así, la aplicación no tiene que aceptar directamente conexiones desde internet.
Sus usos habituales incluyen:
- Gestión de HTTPS. Nginx puede utilizar un certificado TLS para cifrar la conexión con el navegador. La conexión entre Nginx y la aplicación requiere una configuración aparte y no queda cifrada automáticamente.
- Balanceo de carga, o load balancing. Nginx reparte las peticiones entre varias instancias de la aplicación. La utilidad de esta solución también depende de que la aplicación pueda funcionar en varias instancias.
- Memoria caché. Nginx puede guardar una respuesta de la aplicación y reutilizarla, en lugar de recurrir a la aplicación cada vez. Esto exige reglas que impidan que otros usuarios reciban contenido privado.
- Redirecciones. Puede redirigir a los visitantes de HTTP a HTTPS o de una dirección antigua a una nueva, si el administrador lo configura así.
Nginx utiliza una arquitectura basada en eventos: un proceso de trabajo puede gestionar muchas conexiones, respondiendo cuando los datos están listos para su lectura o escritura. Esto ayuda a gestionar de forma eficiente el tráfico simultáneo, pero no significa que instalar el programa baste para acelerar cualquier web. Las consultas lentas a la base de datos pueden seguir retrasando las respuestas.
Ejemplo: una tienda y su aplicación detrás de Nginx
Imagina una tienda en la que Nginx gestiona el dominio tienda.example. Una petición de la imagen de un producto puede resolverse leyendo un archivo del disco. En cambio, una petición del carrito llega a la aplicación, que comprueba la sesión del usuario, obtiene los datos y prepara la respuesta.
En el caso de WordPress, el código PHP suele ejecutarlo PHP-FPM, un programa independiente que gestiona los procesos PHP. Nginx le envía las peticiones correspondientes mediante el protocolo FastCGI. Si la aplicación está escrita en Node.js o Python, puede reenviar el tráfico mediante HTTP al servidor de la aplicación, que escucha en un puerto local.
Esta separación ayuda a diagnosticar problemas. Si las imágenes se muestran, pero el carrito devuelve un error, es posible que Nginx funcione correctamente y que el fallo esté en la aplicación. El error 502 Bad Gateway suele indicar un problema para obtener una respuesta válida del servicio situado detrás del intermediario; hay que determinar su causa a partir de los logs, es decir, los registros de actividad de Nginx y de la aplicación.
No conviene activar la caché para toda la tienda sin evaluar qué se almacenará. El carrito, el panel del cliente y las respuestas que contienen datos personales deben excluirse de la caché según corresponda o contar con reglas precisas de aislamiento.
Nginx o Apache: ¿qué importa al elegir?
Apache HTTP Server es otro servidor HTTP popular. Ambas soluciones pueden servir páginas y actuar como intermediarias en la comunicación con las aplicaciones. La elección no se reduce a «Nginx es rápido y Apache es lento»: importan el tipo de tráfico, la configuración, la aplicación y la experiencia del administrador.
Una diferencia práctica está en los archivos .htaccess, que en Apache pueden contener reglas locales, como redirecciones. Nginx no los lee. Por tanto, al migrar una web hay que trasladar las reglas necesarias a la configuración de Nginx, no solo copiar los archivos de la web.
Nginx y Apache también pueden funcionar juntos: el primero recibe el tráfico y el segundo atiende parte de las peticiones. Por eso, saber únicamente que «el hosting utiliza Nginx» no describe toda la configuración ni garantiza un rendimiento determinado.
¿Tienes que configurar Nginx por tu cuenta?
En un hosting compartido o gestionado, pregunta al proveedor quién se encarga de HTTPS, las redirecciones, la caché y las reglas que necesita la aplicación. Es posible que puedas realizar todos los ajustes necesarios desde el panel, sin acceder a la configuración del servidor.
En un VPS propio, es decir, un servidor virtual, tu responsabilidad suele incluir la instalación, las actualizaciones, los certificados y el diagnóstico de problemas. Antes de cambiar la configuración, guarda una copia que funcione. El comando nginx -t comprueba que la sintaxis sea correcta y que los archivos indicados estén disponibles; sin embargo, no confirma que la aplicación funcione correctamente ni que las reglas sean seguras.
Si la prueba termina correctamente, recarga la configuración y comprueba después la web, el inicio de sesión, las redirecciones y los registros de errores. Consulta las rutas exactas de los archivos y los comandos de gestión del servicio en la documentación de Nginx y de la distribución del sistema que utilices: dependen del método de instalación.
Consulta también: ¿Qué es 2FA?
