Instalación y Configuración de Nginx

Nginx es un servidor web y proxy inverso conocido por su alto rendimiento, estabilidad y bajo uso de recursos. Es utilizado por muchas de las mayores empresas de tecnología para servir contenido web a gran escala. Este artículo te guiará a través de los pasos necesarios para instalar y configurar Nginx en un servidor Linux.

Compartir en Linkedin Compartir en WhatsApp

Tiempo estimado de lectura: 4 minutos

Imagen del artículo Instalación y Configuración de Nginx

Nginx es un servidor web y proxy inverso conocido por su alto rendimiento, estabilidad y bajo uso de recursos. Es utilizado por muchas de las mayores empresas de tecnología para servir contenido web a gran escala. Este artículo te guiará a través de los pasos necesarios para instalar y configurar Nginx en un servidor Linux.

Paso 1: Instalación de Nginx

Para Distribuciones Basadas en Debian (Ubuntu, Debian):

  1. Actualizar el Sistema:
sudo apt update
sudo apt upgrade

2. Instalar Nginx:

sudo apt install nginx

3. Iniciar y Habilitar Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Para Distribuciones Basadas en Red Hat (CentOS, Fedora):

  1. Actualizar el Sistema:
sudo yum update

2. Instalar Nginx:

sudo yum install epel-release
sudo yum install nginx

3. Iniciar y Habilitar Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Paso 2: Configuración Básica de Nginx

Estructura de Directorios de Nginx:

  • /etc/nginx/: Directorio de configuración principal.
  • /etc/nginx/nginx.conf: Archivo de configuración principal de Nginx.
  • /etc/nginx/conf.d/: Directorio para archivos de configuración adicional.
  • /etc/nginx/sites-available/: Directorio para archivos de configuración de sitios (no siempre presente por defecto).
  • /etc/nginx/sites-enabled/: Directorio para enlaces simbólicos a sitios habilitados (no siempre presente por defecto).
  • /var/www/: Directorio raíz para los archivos web.

Configuración de un Bloque de Servidor (Servidor Virtual):

  1. Crear un Archivo de Configuración de Sitio:
sudo nano /etc/nginx/sites-available/mi_sitio

2. Añadir la Configuración del Sitio:

server {
    listen 80;
    server_name mi_sitio.com www.mi_sitio.com;

    root /var/www/mi_sitio;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    location = /404.html {
        internal;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        internal;
    }
}

3. Crear el Directorio Raíz y un Archivo de Índice:

sudo mkdir -p /var/www/mi_sitio
sudo nano /var/www/mi_sitio/index.html

4. Añadir Contenido al Archivo de Índice:

<!DOCTYPE html>
<html>
<head>
    <title>Bienvenido a mi_sitio</title>
</head>
<body>
    <h1>¡Funciona!</h1>
</body>
</html>

5. Habilitar el Sitio Creando un Enlace Simbólico:

sudo ln -s /etc/nginx/sites-available/mi_sitio /etc/nginx/sites-enabled/

6. Probar la Configuración y Recargar Nginx:

sudo nginx -t
sudo systemctl reload nginx

Paso 3: Configuración Adicional

Configurar HTTPS con Let’s Encrypt:

  1. Instalar Certbot: Para distribuciones basadas en Debian:
sudo apt install certbot python3-certbot-nginx

Para distribuciones basadas en Red Hat:

sudo yum install certbot python3-certbot-nginx

2. Obtener un Certificado SSL:

sudo certbot --nginx -d mi_sitio.com -d www.mi_sitio.com

3. Renovar Certificados Automáticamente:

Certbot instala automáticamente un cron job para renovar los certificados. Puedes verificarlo con:

sudo systemctl status certbot.timer

Paso 4: Monitorización y Mantenimiento

Monitorizar el Rendimiento de Nginx:

  • Acceder a los Logs:
    • Acceso: /var/log/nginx/access.log
    • Errores: /var/log/nginx/error.log
  • Herramientas de Monitorización:
    • Munin: Monitorea el rendimiento del servidor.
    • Grafana: Visualiza métricas de rendimiento.

Actualizar Nginx:

Mantén Nginx actualizado para aprovechar las últimas características y correcciones de seguridad:

sudo apt update && sudo apt upgrade nginx  # Para Debian/Ubuntu
sudo yum update nginx  # Para CentOS/Fedora

Conclusión

Nginx es una herramienta poderosa y flexible para servir contenido web. Su configuración inicial es sencilla y ofrece un rendimiento excelente incluso bajo alta carga. Al seguir estos pasos, puedes instalar y configurar Nginx para servir tus sitios web de manera segura y eficiente. Asegúrate de mantener tu servidor actualizado y monitorizado para garantizar un funcionamiento continuo y seguro.

¿Qué es el Sistema Binario? Cómo Cuentan las Computadoras

Descubre qué es el sistema binario, por qué lo usan las computadoras y cómo convertir números entre binario y decimal.

Tablas Dinámicas en Excel: Guía para Principiantes

Aprende qué son las tablas dinámicas de Excel, para qué sirven y cómo crear tu primera tabla paso a paso para analizar datos con facilidad.

¿Qué es el Machine Learning? Una Introducción al Aprendizaje Automático

Descubre qué es el machine learning, cómo aprenden las máquinas a partir de datos, sus tipos principales y ejemplos de uso en la vida diaria.

Diseño Web Responsive: Qué Es y Cómo Funciona

Descubre qué es el diseño web responsive, por qué es esencial hoy y cómo se adapta a móviles, tablets y computadoras.

Ingeniería Social: Cómo Reconocer y Evitar los Engaños Digitales

Aprende qué es la ingeniería social, cuáles son sus técnicas más comunes y cómo protegerte de los engaños digitales más frecuentes.

Diferencias entre HTML y CSS: Guía para Principiantes

Descubre qué son HTML y CSS, en qué se diferencian y cómo trabajan juntos para construir páginas web modernas.

Phishing: Cómo Reconocer un Mensaje Fraudulento Antes de Hacer Clic

Aprende a identificar señales de phishing en correos y mensajes, qué hacer si has picado y cómo reducir el riesgo día a día.

Contraseñas Seguras: Cómo Crear y Gestionar tus Claves para Proteger tus Cuentas

Aprende a crear contraseñas fuertes, gestionarlas de forma segura y proteger tus cuentas en línea con consejos prácticos para el día a día.