Como usar Nginx - desde 0

 

Conociendo al guardián de tus sitios web

¿Qué es Nginx y por qué debería importarme?

Imaginá que tenés una tienda online muy popular. Cuando un cliente entra a tu sitio, hay alguien que tiene que recibirlo, entender qué producto busca y llevarlo al estante correcto, ¿verdad? Ese "alguien" en el mundo de la web es lo que llamamos un servidor web.

Nginx es un servidor web. Pero no es uno cualquiera. Es conocido por ser increíblemente rápido, eficiente y capaz de manejar muchísimas conexiones al mismo tiempo. Esto lo hace ideal para sitios web con mucho tráfico, ¡pero también es perfecto para proyectos más pequeños o para aprender!

Lo vas a encontrar en roles como:

  • Servidor web estático: Sirviendo directamente tus archivos HTML, CSS, JavaScript e imágenes.
  • Proxy inverso: Redirigiendo las peticiones de los usuarios a otros servidores donde realmente vive tu aplicación (¡esto es muy común y lo explicaremos!).
  • Balanceador de carga: Distribuyendo el tráfico entre varios servidores para que ninguno se sature y tu sitio siempre esté disponible.

En resumen, Nginx es como el "portero" inteligente de tu sitio web: recibe a las visitas, las dirige al lugar correcto y se asegura de que todo funcione de manera fluida, ¡incluso si llegan miles al mismo tiempo!

Nginx vs. Apache: ¿Cuál es la diferencia?

Quizás ya escuchaste hablar de Apache, otro servidor web muy popular. Ambos hacen un trabajo excelente, pero tienen filosofías de funcionamiento distintas:

  • Apache tiende a ser más "tradicional" y flexible, con mucha configuración basada en archivos .htaccess que son muy cómodos para algunos entornos.
  • Nginx es más moderno, diseñado para ser súper eficiente con los recursos y manejar un alto volumen de conexiones concurrentes. Es el rey cuando se trata de servir contenido estático o actuar como proxy inverso.

No se trata de cuál es "mejor", sino de cuál es más adecuado para cada necesidad. Para muchos escenarios modernos (especialmente con aplicaciones web complejas), Nginx se ha convertido en la elección preferida por su rendimiento.

Un vistazo rápido a la configuración de Nginx

La magia de Nginx ocurre a través de sus archivos de configuración. Normalmente, encontrarás un archivo principal (como nginx.conf) y luego archivos adicionales para cada sitio o aplicación que quieras servir.

Aunque no vamos a meternos en detalles hoy, es importante que sepas que todo se define con directivas dentro de bloques. Por ejemplo, así es como se vería una configuración súper básica para servir un sitio web:


http {

    server {

        listen 80; # Nginx escucha en el puerto 80 (HTTP estándar)

        server_name tusitio.com www.tusitio.com; # El nombre de tu dominio


        location / {

            root /var/www/html/mi-sitio; # La carpeta donde están tus archivos web

            index index.html index.htm; # El archivo que Nginx buscará primero

        }

    }

}


No te asustes si no entendés todo esto ahora! Lo importante es que veas que Nginx se configura de forma lógica, indicándole qué puerto escuchar, qué dominio atender y dónde encontrar los archivos de tu sitio.

¿Qué sigue en nuestra aventura con Nginx?

  1. Instalar Nginx en tu sistema.
  2. Configurar tu primer sitio web estático para que lo sirva Nginx.
  3. Entender y configurar Nginx como proxy inverso, ¡un concepto clave!

Nginx es una herramienta esencial para cualquier desarrollador o sysadmin. Entender cómo funciona te dará un control impresionante sobre cómo se entregan tus aplicaciones web al mundo.

INSTALARCION DE NGNIX

1) Actualiza la lista de paquetes:

sudo apt update && sudo apt upgrade -y 

2) instalar Nginx

 sudo apt install nginx -y

3) verificar si se instalo bien

 sudo systemctl status nginx

5) Configurar el firewall UFW
 sudo ufw allow 'Nginx HTTP'   # Permite el tráfico HTTP (puerto 80)
sudo ufw allow 'Nginx HTTPS'  # Permite el tráfico HTTPS (puerto 443, si usas SSL)
sudo ufw status               # Verifica que las reglas estén activas
6) verificar los cambios hasta ahora, abrí tu navegador y digita tu ip del servidor, deberia salirte un cartel de nginx corriendo
Con esa configuracion ya tendriamos instalado y accesible para todos, pero falta poner un sitio web en lugar de ese mensaje.


Configurando tu Primer Sitio Web

1) usando cd nos dirigimos a :

 cd /var/www/

2) estando en el directorio podemos crear un archivo .html o importar nuestro proyecto directamente desde github, en este caso vamos a crear una carpeta y poner un archivo html basico de ejemplo

mkdir -p /mi_sitio_estatico/html 

3) entramos a la carpeta html y usando nano creamos el archivo

nano index.hmtl 

pegamos el codigo html deseado :

 
 


    
    
    Mi Sitio Estático con Nginx
    


    

¡Hola desde mi sitio estático con Nginx!

Esta es mi primera página web servida por Nginx.


7) apretamos ctrl + x para salir, nos va a pedir guardar le damos enter y dejamos el nombre que tiene (index.html)



8) nod dirigimos el inicio poniendo

 
 cd 

9) una ves en el directorio de inicio entramos a
 sudo nano /etc/nginx/sites-available/mi_sitio_estatico 

10) y pegamos el siguiente contenido :
 server {
    listen 80; # Nginx escucha en el puerto 80 (HTTP)
    listen [::]:80; # Soporte para IPv6

    server_name tu_ip_o_dominio.com www.tu_ip_o_dominio.com; # Reemplaza con tu IP o dominio

    root /var/www/mi_sitio_estatico/html; # La ruta a tus archivos web
    index index.html index.htm; # Los archivos que Nginx buscará por defecto

    location / {
        try_files $uri $uri/ =404; # Intenta servir el archivo o el directorio, si no, 404
    }

    error_log /var/log/nginx/mi_sitio_estatico_error.log;
    access_log /var/log/nginx/mi_sitio_estatico_access.log;
}

¡MUY IMPORTANTE! Reemplaza tu_ip_o_dominio.com y www.tu_ip_o_dominio.com con la IP pública de tu servidor o tu nombre de dominio real. 

 11) Activa la configuración y elimina la configuración por defecto:Crea un enlace simbólico para activar tu nuevo sitio y elimina el enlace de la configuración por defecto de Nginx.
sudo ln -s /etc/nginx/sites-available/mi_sitio_estatico /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default 

12)Prueba la sintaxis de Nginx y recarga el servicio:Siempre prueba la configuración antes de recargar Nginx para evitar errores.
 sudo nginx -t

13) Si ves syntax is ok y test is successful, estás listo.
sudo systemctl reload nginx 

Verifica en tu navegador de nuevo, ya deberia aparecer tu sitio html nuevo en lugar del aviso de nginx
Artículo Anterior Artículo Siguiente

Publicidad-1

publicidad-2