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
    bash
    1
    
    sudo dnf install nginx -y
  2. Iniciar y habilitar el servicio
    bash
    1
    
    sudo systemctl enable --now nginx
  3. Verificar instalación
    bash
    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 #

conf
 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:

bash
1
sudo nginx -t && sudo systemctl reload nginx

🔒 Certificado SSL con Let’s Encrypt #

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

⚡ Optimización de Rendimiento #

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

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 #

bash
 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” #

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

Error: “SSL handshake failed” #

Verificar que el puerto 443 esté abierto:

bash
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

¿Te sirvió?

Sumate a la comunidad

Recibí más contenido sobre tecnología, GNU/Linux y desarrollo. Unite al Telegram o seguime en tus redes favoritas.

PatoJAD

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.

Redes Sociales

Apoyame


359

Artículos Redactados

Sponsors

Vasak Group