Guía de instalación de Nginx: Paso a paso para principiantes
¡Domina la configuración inicial de tu servidor web de alta velocidad! Esta guía exhaustiva acompaña a los principiantes a través de la instalación precisa, paso a paso, de Nginx tanto en sistemas Debian/Ubuntu como CentOS/RHEL. Aprende los comandos esenciales para iniciar, detener y verificar el servicio, además de la configuración crucial del cortafuegos para garantizar el acceso inmediato. Pon en marcha tu servidor web Nginx en minutos.
Guía de Instalación de Nginx: Paso a Paso para Principiantes
Necesitas tener Nginx instalado, en ejecución y accesible antes de poder usarlo como servidor web, proxy inverso, balanceador de carga o caché. Esta guía de instalación de Nginx te guía a través de la configuración básica del administrador de paquetes en sistemas Debian/Ubuntu y Linux estilo RHEL, y luego te muestra cómo verificar el servicio y abrir el firewall.
Los comandos a continuación asumen un servidor basado en systemd y un usuario con acceso sudo.
Prerrequisitos
Antes de comenzar, asegúrate de tener:
- Un servidor o máquina virtual ejecutando Ubuntu, Debian, RHEL, CentOS Stream, Rocky Linux, AlmaLinux o una distribución similar.
- Un usuario no root con privilegios
sudo. - Acceso a la terminal a través de SSH o una terminal local.
Instalación en Sistemas Debian/Ubuntu
En sistemas basados en Debian, Nginx está disponible en los repositorios predeterminados. Primero actualiza el índice de paquetes para que apt vea los metadatos actuales del paquete.
Paso 1: Actualizar Listas de Paquetes
Ejecuta los siguientes comandos para actualizar tu índice de paquetes local:
sudo apt update
Paso 2: Instalar Nginx
Usa el comando apt install para descargar e instalar Nginx y sus dependencias:
sudo apt install nginx
Paso 3: Verificar el Estado de la Instalación
Una vez que la instalación se completa, el servicio generalmente se inicia automáticamente. Puedes verificar su estado usando systemctl:
sudo systemctl status nginx
Deberías ver una salida que indica que el servicio está active (running).
Instalación en Sistemas CentOS/RHEL
En sistemas estilo RHEL, usa dnf en versiones actuales y yum en las más antiguas. Algunas distribuciones incluyen Nginx en sus propios repositorios; otras pueden necesitar EPEL o un repositorio oficial del proveedor. Si dnf install nginx no puede encontrar el paquete, habilita EPEL o consulta las notas de empaquetado de Nginx de tu distribución.
Paso 1: Instalar el Repositorio EPEL
Si tu sistema necesita EPEL, instálalo primero.
Para CentOS/RHEL 7:
sudo yum install epel-release
Para CentOS/RHEL 8/9 (usando DNF):
sudo dnf install epel-release
Paso 2: Instalar Nginx
Ahora, instala Nginx usando yum o dnf:
# Usando yum (sistemas antiguos)
sudo yum install nginx
# O usando dnf (sistemas nuevos)
sudo dnf install nginx
Paso 3: Iniciar y Habilitar el Servicio Nginx
A diferencia de Debian/Ubuntu, Nginx podría no iniciarse automáticamente después de la instalación en sistemas basados en RHEL. Debes iniciarlo manualmente y habilitarlo para que se ejecute al arrancar el sistema:
# Iniciar el servicio inmediatamente
sudo systemctl start nginx
# Asegurar que se inicie al reiniciar
sudo systemctl enable nginx
# Verificar el estado
sudo systemctl status nginx
Configuración del Firewall: Permitir HTTP y HTTPS
Después de la instalación, asegúrate de que tu firewall permita el tráfico web. Si el servicio está en ejecución pero el puerto 80 o 443 está bloqueado, tu verificación en el navegador fallará desde fuera del servidor.
Usando UFW en Ubuntu/Debian
El paquete de Nginx de Ubuntu generalmente registra perfiles de aplicación UFW. Abre tanto HTTP como HTTPS si planeas agregar TLS pronto.
# Listar los perfiles de aplicación disponibles
sudo ufw app list
# Permitir tráfico web estándar (HTTP/HTTPS)
sudo ufw allow 'Nginx Full'
# Recargar el firewall para aplicar cambios
sudo ufw reload
Usando Firewalld en Sistemas Estilo RHEL
Firewalld usa zonas para gestionar reglas. Estos comandos agregan los servicios estándar http y https a la zona predeterminada activa.
# Permitir tráfico HTTP (puerto 80)
sudo firewall-cmd --permanent --add-service=http
# Permitir tráfico HTTPS (puerto 443)
sudo firewall-cmd --permanent --add-service=https
# Recargar las reglas del firewall
sudo firewall-cmd --reload
Verificar que Nginx Funciona
Con el paquete instalado y el firewall abierto, confirma que Nginx está sirviendo la página predeterminada.
Método 1: Verificación en el Navegador Web
Abre tu navegador web preferido y navega a la dirección IP o nombre de dominio de tu servidor:
http://TU_DIRECCIÓN_IP_DEL_SERVIDOR
Si tiene éxito, deberías ver la página de bienvenida predeterminada de Nginx. El texto exacto y la ruta del archivo varían según la distribución.
Método 2: Verificación en la Línea de Comandos
Usa curl desde el propio servidor para verificar el listener local:
curl http://localhost
Este comando debería devolver HTML. Si falla localmente, verifica systemctl status nginx y /var/log/nginx/error.log antes de solucionar problemas de DNS o reglas del firewall en la nube.
Comandos Esenciales de Gestión de Nginx
Una vez instalado, generalmente gestionarás Nginx con systemctl:
| Acción | Comando |
|---|---|
| Iniciar el servidor | sudo systemctl start nginx |
| Detener el servidor | sudo systemctl stop nginx |
| Reiniciar (Detener luego Iniciar) | sudo systemctl restart nginx |
| Recargar (Aplicar cambios de configuración sin tiempo de inactividad) | sudo systemctl reload nginx |
| Verificar Estado | sudo systemctl status nginx |
| Deshabilitar inicio automático al arrancar | sudo systemctl disable nginx |
Prueba la sintaxis de configuración antes de cada recarga:
sudo nginx -t
sudo systemctl reload nginx
Ese hábito detecta puntos y coma faltantes, rutas de inclusión incorrectas y conflictos de listen duplicados antes de que interrumpan el tráfico.
Siguiente Paso: Crear un Bloque de Servidor
La configuración predeterminada sirve una página de bienvenida proporcionada por el paquete. En Debian/Ubuntu, los archivos web comúnmente residen en /var/www/html. En sistemas estilo RHEL, la raíz predeterminada suele ser /usr/share/nginx/html.
Tu siguiente paso es crear un bloque de servidor para tu dominio. Los diseños de Debian/Ubuntu a menudo usan /etc/nginx/sites-available/ con enlaces simbólicos en /etc/nginx/sites-enabled/. Los diseños estilo RHEL usan más a menudo archivos en /etc/nginx/conf.d/.
Después de eso, agrega TLS, apunta el registro DNS de tu dominio al servidor y ejecuta sudo nginx -t antes de recargar. En ese punto, tu instalación de Nginx está lista para la configuración real del sitio.