Guía de instalación de Nginx: Paso a paso para principiantes
¡Bienvenido al mundo del servicio web de alto rendimiento! Nginx (pronunciado "engine-x") se ha convertido en el estándar de facto para servir contenido estático, actuar como proxy inverso, equilibrador de carga y caché HTTP. Para los principiantes, lograr una instalación inicial correcta es el primer paso crucial para aprovechar su velocidad y eficiencia.
Esta guía proporciona instrucciones claras, prácticas y paso a paso para instalar Nginx en las distribuciones de Linux más comunes (Debian/Ubuntu y CentOS/RHEL). También cubriremos los pasos esenciales de verificación posterior a la instalación para garantizar que su servidor web esté funcionando correctamente y listo para manejar el tráfico.
Requisitos previos
Antes de comenzar el proceso de instalación, asegúrese de tener:
- Un servidor o máquina virtual ejecutando una distribución de Linux compatible (Ubuntu/Debian o CentOS/RHEL).
- Un usuario no root con privilegios
sudoconfigurados para tareas administrativas. - Familiaridad básica con la interfaz de línea de comandos de Linux (CLI).
Instalación en sistemas Debian/Ubuntu
En los sistemas basados en Debian, Nginx está disponible fácilmente en los repositorios de paquetes predeterminados. Recomendamos actualizar la lista de paquetes primero para asegurarse de obtener la última versión disponible.
Paso 1: Actualizar listas de paquetes
Ejecute los siguientes comandos para actualizar su índice de paquetes local:
sudo apt update
Paso 2: Instalar Nginx
Use 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 finaliza la instalación, el servicio generalmente se inicia automáticamente. Puede verificar su estado usando systemctl:
sudo systemctl status nginx
Debería ver un resultado que indique que el servicio está active (running) (activo (en ejecución)).
Instalación en sistemas CentOS/RHEL
En los derivados de Red Hat Enterprise Linux (RHEL), como CentOS o Fedora, Nginx se instala típicamente utilizando el administrador de paquetes yum o dnf. Dado que Nginx puede no estar en el repositorio base predeterminado, a menudo se recomienda instalarlo desde el repositorio oficial EPEL (Extra Packages for Enterprise Linux) para obtener la última versión estable.
Paso 1: Instalar el repositorio EPEL
Primero, instale el repositorio EPEL, que contiene muchos paquetes de alta calidad de uso común no incluidos en los repositorios estándar.
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, instale Nginx usando yum o dnf:
# Usando yum (sistemas más antiguos)
sudo yum install nginx
# O usando dnf (sistemas más nuevos)
sudo dnf install nginx
Paso 3: Iniciar y habilitar el servicio Nginx
A diferencia de Debian/Ubuntu, es posible que Nginx no se inicie automáticamente después de la instalación en sistemas basados en RHEL. Debe iniciarlo manualmente y habilitarlo para que se ejecute en el arranque del 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 tráfico HTTP/HTTPS
Un paso crucial después de la instalación es asegurarse de que su firewall permita las conexiones externas para llegar al servidor web. Si omite esto, los usuarios externos no podrán ver su sitio.
Uso de UFW (Uncomplicated Firewall - Común en Ubuntu/Debian)
Nginx registra perfiles específicos con UFW durante la instalación. Recomendamos abrir el puerto 80 (HTTP) y, opcionalmente, el puerto 443 (HTTPS).
# Listar 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
Uso de Firewalld (Común en CentOS/RHEL)
Firewalld utiliza zonas para administrar reglas. Generalmente agregamos servicios a la zona public.
# 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
Verificación: Confirmación de que Nginx está operativo
Una vez completada la instalación y configurado el firewall, puede confirmar que Nginx está sirviendo contenido correctamente.
Método 1: Verificación con navegador web
Abra su navegador web preferido y navegue a la dirección IP o nombre de dominio de su servidor:
http://YOUR_SERVER_IP_ADDRESS
Si tiene éxito, debería ver la página de bienvenida predeterminada de Nginx, que típicamente dice: "Welcome to nginx!" (¡Bienvenido a nginx!).
Método 2: Verificación por línea de comandos
Use el comando curl para recuperar el contenido predeterminado de la página de índice directamente desde el localhost del servidor:
curl http://localhost
Este comando debería devolver el código fuente HTML de la página de bienvenida.
Comandos esenciales de gestión de Nginx
Una vez instalado, usará systemctl con frecuencia para administrar el proceso de Nginx. Aquí están los comandos más comunes:
| Acción | Comando |
|---|---|
| Iniciar el servidor | sudo systemctl start nginx |
| Detener el servidor | sudo systemctl stop nginx |
| Reiniciar (Detener y luego Iniciar) | sudo systemctl restart nginx |
| Recargar (Aplicar cambios de configuración sin interrupción) | sudo systemctl reload nginx |
| Verificar estado | sudo systemctl status nginx |
| Deshabilitar inicio automático en el arranque | sudo systemctl disable nginx |
Consejo de mejores prácticas: Cuando realice cambios en los archivos de configuración (como
/etc/nginx/nginx.conf), pruebe siempre la sintaxis antes de recargar. Usesudo nginx -tpara buscar errores. Si la prueba pasa, usesudo systemctl reload nginxpara aplicar los cambios de forma elegante.
Dónde ir después: Configuración inicial
¡Felicitaciones, Nginx está instalado y funcionando! La configuración predeterminada sirve contenido desde /var/www/html/index.nginx-debian.html (en Debian/Ubuntu) o /usr/share/nginx/html/index.html (en CentOS/RHEL).
Sus próximos pasos implican crear un Bloque de Servidor (a menudo llamado Host Virtual) para definir dónde se encuentran sus archivos web reales y cómo Nginx debe manejar las solicitudes para su dominio. Los archivos de configuración para estos bloques generalmente se almacenan en /etc/nginx/sites-available/ y se vinculan simbólicamente a /etc/nginx/sites-enabled/.
Esta instalación inicial proporciona la base sobre la cual puede construir entornos de alojamiento de alto rendimiento, soluciones de equilibrio de carga y configuraciones de proxy seguras.