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.