Área de clientes

¿Qué es Nginx y cómo funciona?

Actualmente, existen muchos software distintos que puedes elegir como servidor para mostrar tu página web.

En productos como los hosting compartidos, el servidor web viene predefinido por tu proveedor de alojamiento.

Sin embargo, existen situaciones en las que te puede interesar una configuración más personalizada, contratando una máquina dedicada en la que puedes elegir el servidor web y modificar sus configuraciones.

Entre las opciones más destacadas como servidor web se encuentran Apache y Nginx.
Nginx es un servidor web (entre otras cosas) open-source de alto rendimiento, lo que lo convierte en una opción muy buena opción para sitios web con alto volumen de tráfico.

Logo de Nginx

Suscríbete a nuestra newsletter
¡Suscríbete a nuestra newsletter!

No te enviaremos spam, ¡te lo prometemos!. A nuestros suscriptores les enviamos nuestros contenidos sobre WordPress, hosting, marketing digital y programación.

Cómo funciona Nginx

Nginx tiene un modo de funcionamiento asíncrono basado en eventos. A grandes rasgos, esto significa que no tiene que crear un hilo por cada petición web, como hacen otros servidores web.

De esta forma, puede proporcionar un gran rendimiento bajo altas cargas de trabajo, ya que al gestionar las peticiones sin tener que crear nuevos hilos su consumo de recursos (memoria RAM y CPU) es menor para procesar la misma cantidad de tráfico.

Una vez que hayas instalado Nginx, tendrás a tu disposición una serie de comandos o binarios para poder manejar, de forma sencilla, el servidor web. Si quieres arrancarlo, solamente tienes que ejecutar, mediante un terminal, la orden nginx

Cuando Nginx está levantado, si has hecho cambios en su configuración, puedes recargarla con nginx -s reload

Si quieres detener el servicio, la orden nginx -s stop es suficiente para ello.

Debes tener en cuenta que, en un servidor, un proceso como Nginx no suele manejarse directamente mediante terminal, sino a través del gestor de procesos del sistema operativo, normalmente init/systemd en sistemas Linux. De este modo, los comandos anteriores están más orientados a servidores web de prueba.

Por otro lado, una de las características que hace tan rápido y eficiente a Nginx es que no soporta archivos de configuración adicionales. Así pues, no puedes modificar su comportamiento, como sí harías con Apache, mediante un archivo .htaccess.

Al no rastrear los directorios en busca de archivos de configuración, su rendimiento es más alto, en detrimento de dejar todo a punto para servir tu página web, que te resultará un poco más complejo, ya que las modificaciones que normalmente hacen ciertos CMS (como WordPress) en .htaccess debes realizarlas a mano en los archivos de configuración.

Descubriendo si tu web usa Nginx

Al acceder a un sitio web, este te proporciona muchísima información a través de, por ejemplo, las cabeceras que te devuelve el servidor web. Si quieres saber el servidor web que está utilizando un sitio web, solamente tienes que hacerle una petición y analizar las cabeceras http.

Existen multitud de herramientas que te permiten hacerlo, pero quizá lo más sencillo sea mediante tu navegador o un terminal. En el siguiente extracto puedes apreciar las cabeceras de una petición web a un sitio de pruebas el cual es servido por Nginx. Concretamente, puedes verlo en la cabecera Server:

Funcionalidades adicionales de Nginx

Nginx para servir contenido dinámico

Nginx, por defecto, no sirve contenido dinámico, un básico a día de hoy para cualquier página web, como las páginas web escritas en PHP, python o cualquier otro lenguaje de backend.

Nginx solamente es capaz de ofrecer páginas web estáticas a menos que se le configure algún módulo adicional para poder ofrecer contenidos dinámicos.

Mediante la configuración de php-fpm, podemos ofrecer páginas que creadas con WordPress o cualquier CMS que use PHP como lenguaje de backend.

También tiene módulos, como phusion-passenger, para páginas web desarrolladas con Django o Flask, frameworks de python.

Nginx como proxy inverso

Nginx tiene más funcionalidades, más allá de servir páginas web. En muchos casos, no usarás Nginx como servidor web, sino como proxy inverso para servir archivos estáticos y actuar como servidor caché.

De esta forma, puedes mantener la flexibilidad de Apache como servidor web, que es más amigable porque te permite hacer las modificaciones directamente en el archivo .htaccess, dejando que Nginx se encargue de que los sitios web funcionen lo más rápido y fluido posible.

Además, también puedes usarlo como proxy para servidores de correo electrónico, tanto entrante como saliente (IMAP, POP y SMTP). Si quieres montar una infraestructura de correo electrónico escalable con un gran número de servidores por detrás y un solo punto de entrada, esta es la opción que deberías elegir.

Nginx como balanceador de carga

En entornos de alta disponibilidad, necesitas configurar cierto software que te ayude a servir el tráfico de la forma más rápida posible. Esto suele suceder cuando tu página web ha alcanzado un volumen de tráfico tan elevado que necesita varios servidores para su funcionamiento.

En este tipo de situaciones Nginx es tu aliado, ya que lo puedes configurar para que distribuya todo ese tráfico a los servidores que actuarán como backend de tus aplicaciones.

A grandes rasgos, lo que hace Nginx es determinar a cuál de los servidores web debe derivar la petición que acaba de recibir y esperar la respuesta para devolverla al cliente.
Además, te permite determinar el método con que hacer el balanceo de carga; por ejemplo, mediante un balanceo Round Robin (todos los servidores reciben el mismo número de peticiones) o el método ‘least_connections’, que envía la petición al servidor que tenga menos conexiones en ese momento, entre otros.

Nginx en Raiola Networks

Para montar nuestros servidores de hosting, hemos elegido LiteSpeed como servidor web, como seguramente sabrás. Sin embargo, LiteSpeed tiene un coste de licencia y Nginx es una solución gratuita, a menos que decidas usar Nginx Plus.

Dado que ofrece un alto rendimiento, en Raiola Networks nos hemos decantado por usar un stack Nginx + Apache en nuestros Servidores VPS SSD Optimizados. En este tipo de servidores, Nginx es el encargado de servir todos los archivos estáticos como fotos, vídeos, CSS, etc., de tu página web.

Además, mediante una sencilla configuración, cambiando la «Plantilla proxy» puedes aplicar caché de Nginx a tus páginas web. Sumada a la caché que configures a nivel de aplicación, te ofrecerá un rendimiento excepcional.

Todo esto, junto con la facilidad para instalar aplicaciones como WordPress o PrestaShop en los VPS SSD Optimizados de Raiola Networks, los convierte en una gran elección para páginas web con altas demandas de visitas.

¿Has usado Nginx alguna vez? ¿Cuál es tu experiencia? Cuéntanoslo en los comentarios.

Integrante del equipo de Soporte Técnico de Raiola Networks. Apasionado de Linux, el software libre y su filosofía. En mi tiempo libre me gusta cocinar y cuidar de la huerta.

Articulos relacionados

Si te ha gustado este post, aquí tienes otros que pueden interesarte. ¡No pares de aprender!

Compartir en Twitter
Compartir en Facebook
Compartir en Pinterest

Sé el primero en enterarte de ofertas, sorteos y novedades.

Servidores VPS

Consigue fiabilidad y rendimiento en un entorno dedicado.

Desde
14,95€
/mes

Tenemos 10 comentarios en

"¿Qué es Nginx y cómo funciona?"

  1. Avatar Dani dice:

    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

    1. Avatar Alvaro Fontela dice:

      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.

      1. Avatar Dani dice:

        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

        1. Avatar Alvaro Fontela dice:

          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.

          1. Avatar Dani dice:

            Ok
            Gracias Alvaro
            Saludos

  2. Avatar Mike dice:

    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.

    1. Avatar Alvaro Fontela dice:

      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.

      1. Avatar Mike dice:

        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.

        1. Avatar Alvaro Fontela dice:

          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.

  3. Avatar Mike dice:

    Muchas gracias Alvaro, lo probaremos a ver.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.