Configurar Nginx con SSL en AlmaLinux: Guía Definitiva 2025

Nginx es uno de los servidores web más rápidos y eficientes para entornos Linux. En esta guía aprenderás a:

  • Instalar y configurar Nginx en   AlmaLinux
  • Habilitar HTTPS con Let’s Encrypt
  • Optimizar el rendimiento para producción
  • Solucionar errores comunes

🛠️ Instalación de Nginx #

  1. Instalar desde repositorios
    1
    
    sudo dnf install nginx -y
    
  2. Iniciar y habilitar el servicio
    1
    
    sudo systemctl enable --now nginx
    
  3. Verificar instalación
    1
    
    curl -I localhost
    
    Deberías ver: HTTP/1.1 200 OK

📂 Configuración Básica #

Estructura de archivos clave #

RutaPropósito
/etc/nginx/nginx.confConfiguración principal
/etc/nginx/conf.d/Configs de sitios adicionales
/var/www/html/Directorio raíz por defecto

Ejemplo de configuración mínima #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# /etc/nginx/conf.d/tusitio.conf

server {
listen 80;
server_name tusitio.com www.tusitio.com;
root /var/www/html;

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

}

Verificar y recargar:

1
sudo nginx -t && sudo systemctl reload nginx

🔒 Certificado SSL con Let’s Encrypt #

  1. Instalar Certbot
    1
    
    sudo dnf install certbot python3-certbot-nginx -y
    
  2. Obtener certificado
    1
    
    sudo certbot --nginx -d tusitio.com -d www.tusitio.com
    
  3. Renovación automática Añadir al cron:
    1
    
    0 3 \* \* \* /usr/bin/certbot renew --quiet
    

⚡ Optimización de Rendimiento #

Ajustes recomendados en /etc/nginx/nginx.conf #

1
2
3
4
5
worker_processes auto;
worker_connections 1024;
keepalive_timeout 30;
gzip on;
gzip_types text/css application/javascript;

Comandos útiles #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Reinicio seguro

sudo systemctl restart nginx

# Ver estado

sudo systemctl status nginx

# Monitorear peticiones

sudo tail -f /var/log/nginx/access.log

🚨 Solución de Problemas Comunes #

Error: “Port 80 already in use” #

1
2
sudo netstat -tulnp | grep :80
sudo kill -9 <PID>

Error: “SSL handshake failed” #

Verificar que el puerto 443 esté abierto:

1
2
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload

📊 Comparativa Nginx vs Apache #

CaracterísticaNginxApache
VelocidadRapidoLento
RendimientoAltoMedio
Consumo RAMBajoModerado
FacilidadIntermediaSencilla
Soporte .htaccessNo

📌 Conclusión #

Con esta guía has aprendido a:

  • Desplegar Nginx en   AlmaLinux
  • Configurar sitios virtuales
  • Implementar HTTPS automático
  • Optimizar para entornos productivos
Comparte

PatoJAD

Arquitecto de Soluciones

Soy Arquitecto de Soluciones con experiencia en entornos GNU/Linux desde 2012, mi sistema operativo principal. Apasionado por la tecnología, busco crecer profesionalmente sin perder de vista la colaboración y la gratitud. Agradezco a quienes han contribuido a este camino.

PatoJAD