- 1 1. Introducción
- 2 2. Instalación de Nginx en Ubuntu
- 3 3. Configuración básica de Nginx en Ubuntu
- 4 4. Iniciar y gestionar Nginx
- 5 5. Configuración del firewall de Nginx y endurecimiento de seguridad
- 6 6. Ajuste de rendimiento y solución de problemas de Nginx
- 7 7. Resumen y próximos pasos
1. Introducción
Muchos usuarios están interesados en usar Nginx en Ubuntu, pero los principiantes pueden no saber por dónde empezar. Este artículo ofrece una explicación paso a paso, fácil de entender, desde la instalación de Nginx en Ubuntu hasta su configuración y gestión, incluso si no tienes experiencia previa.
¿Qué es Nginx?
Nginx (Engine‑X) es un servidor HTTP de alto rendimiento y un servidor proxy inverso. Gracias a su arquitectura ligera y flexible, es ampliamente utilizado en servidores web y aplicaciones en todo el mundo. Su estructura es particularmente adecuada para manejar entornos con mucho tráfico.
Ventajas de usar Nginx en Ubuntu
Ubuntu es una distribución Linux popular con excelente compatibilidad con Nginx. Como Ubuntu utiliza el sistema de gestión de paquetes APT, la instalación y las actualizaciones son sencillas, y puedes esperar una gran estabilidad y seguridad.
Después de leer este artículo, comprenderás:
- Cómo instalar Nginx en Ubuntu
- Procedimientos básicos de configuración y gestión
- Técnicas de afinación de rendimiento y solución de problemas
Ahora, ¡comencemos!
2. Instalación de Nginx en Ubuntu
Para ejecutar Nginx en Ubuntu, debes instalarlo correctamente. Esta sección explica los pasos de instalación de forma clara y simple.
Verificar paquetes requeridos
Antes de instalar Nginx, asegúrate de que tu sistema esté actualizado. Ejecuta los siguientes comandos:
sudo apt update
sudo apt upgrade
Instalar Nginx
Para instalar Nginx, escribe el siguiente comando:
sudo apt install nginx
Este comando descarga e instala Nginx directamente desde el repositorio APT de Ubuntu.
Verificar la instalación
Ejecuta el siguiente comando para comprobar si Nginx se instaló correctamente:
sudo systemctl status nginx
Si el estado muestra active (running), la instalación fue exitosa.
Configurar el firewall
Ubuntu incluye UFW (Uncomplicated Firewall), que puedes usar para permitir el tráfico de Nginx.
sudo ufw allow 'Nginx Full'
sudo ufw enable
Nginx ya está listo para comunicarse a través del puerto 80 (HTTP) y el puerto 443 (HTTPS).
3. Configuración básica de Nginx en Ubuntu
Instalar Nginx solo no es suficiente; debes configurarlo adecuadamente para usarlo de forma eficaz.
Ubicación y estructura de los archivos de configuración
Nginx utiliza los siguientes archivos de configuración:
- Archivo de configuración principal:
/etc/nginx/nginx.conf - Archivos de configuración específicos de sitios: ubicados en el directorio
/etc/nginx/sites-available/
Normalmente, creas archivos de host virtual en el directorio sites-available y luego creas enlaces simbólicos en el directorio sites-enabled para activarlos.
Configuración de un host virtual
Los hosts virtuales permiten que un solo servidor administre varios dominios y proyectos. El siguiente ejemplo configura example.com:
sudo nano /etc/nginx/sites-available/example.com
Introduce la configuración a continuación:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Guarda el archivo y luego habilita la configuración:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Configuración de SSL/TLS
Para habilitar la comunicación segura, configura certificados SSL/TLS. Puedes obtener certificados gratuitos usando Let’s Encrypt.
Primero, instala certbot:
sudo apt install certbot python3-certbot-nginx
Luego, emite el certificado y aplica la configuración automáticamente:
sudo certbot --nginx -d example.com -d www.example.com
Asegúrate de que la renovación automática del certificado esté habilitada para evitar que caduque.
4. Iniciar y gestionar Nginx
Una vez que Nginx está instalado y configurado, necesitas aprender a iniciarlo, detenerlo, recargarlo y solucionar problemas. Esta sección explica los comandos administrativos esenciales.
Comandos básicos de Nginx
En Ubuntu, usa el comando systemctl para gestionar Nginx:
- Iniciar Nginx
sudo systemctl start nginx
- Detener Nginx
sudo systemctl stop nginx
- Reiniciar Nginx Usar cuando se realizan cambios importantes de configuración.
sudo systemctl restart nginx
- Recargar Nginx Aplicar cambios de configuración sin reiniciar.
sudo systemctl reload nginx
- Verificar el estado de Nginx
sudo systemctl status nginx
Habilitar inicio automático
Para iniciar Nginx automáticamente después de reiniciar el sistema:
- Habilitar inicio automático
sudo systemctl enable nginx
- Deshabilitar inicio automático
sudo systemctl disable nginx
Revisar registros y solución de problemas
Si Nginx no funciona como se espera, revise los registros:
- Registro de errores
sudo tail -f /var/log/nginx/error.log
- Registro de acceso
sudo tail -f /var/log/nginx/access.log
Problemas comunes y soluciones
- Nginx no inicia
- Causa: errores en el archivo de configuración
- Solución:
bash sudo nginx -tVerifique errores de sintaxis y corríjalos.
- Los cambios no se aplican
- Causa: Nginx no se recargó
- Solución: Run
sudo systemctl reload nginxafter changes.
- Puertos no abiertos
- Causa: configuración del firewall
- Solución:
bash sudo ufw allow 'Nginx Full'

5. Configuración del firewall de Nginx y endurecimiento de seguridad
La seguridad es fundamental al operar Nginx. Esta sección explica cómo configurar UFW y reforzar la seguridad de Nginx.
Abrir puertos con UFW
UFW se instala por defecto en Ubuntu. Para habilitar la comunicación de Nginx, abra los puertos necesarios:
- Verificar el estado de UFW
sudo ufw status
- Aplicar reglas de Nginx
sudo ufw allow 'Nginx Full'
- Habilitar UFW
sudo ufw enable
Mejoras de seguridad adicionales
- Desactivar métodos HTTP innecesarios
if ($request_method !~ ^(GET|POST|HEAD)$) { return 444; }
- Desactivar listado de directorios
autoindex off;
- Fortalecer SSL/TLS
ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers HIGH:!aNULL:!MD5;
6. Ajuste de rendimiento y solución de problemas de Nginx
Nginx es conocido por su rendimiento, pero un ajuste adecuado puede mejorarlo aún más. Esta sección explica cómo optimizar recursos y resolver problemas comunes.
Ajuste de rendimiento
1. Configurar procesos de trabajo
Edite /etc/nginx/nginx.conf y optimice el número de procesos de trabajo:
worker_processes auto;
2. Incrementar conexiones de trabajo
worker_connections 1024;
3. Habilitar HTTP/2
listen 443 ssl http2;
sudo systemctl reload nginx
4. Habilitar compresión
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
5. Configurar caché
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
expires 30d;
access_log off;
}
Problemas comunes y soluciones
1. Solicitudes lentas bajo alta carga
- Causa: configuración insuficiente de procesos o conexiones
- Solución: ajuste los parámetros de los procesos o introduzca balanceo de carga
2. Error 403 Prohibido
- Causa: ruta
rootincorrecta o permisos inadecuados - Solución:
- Verifique la directiva
rooty corrija los permisos usando: bash sudo chmod -R 755 /var/www/example.com/html sudo chown -R www-data:www-data /var/www/example.com/html
3. Tiempo de espera del servidor
- Causa: el procesamiento de la solicitud del cliente lleva demasiado tiempo
- Solución:
proxy_read_timeout 300; proxy_connect_timeout 300; proxy_send_timeout 300;
4. Errores al reiniciar
- Causa: problemas de sintaxis en la configuración
- Solución:
sudo nginx -t
7. Resumen y próximos pasos
Este artículo explicó cómo instalar, configurar y administrar Nginx en Ubuntu. Repasemos lo que ha aprendido y identifiquemos los posibles próximos pasos.
Revisión del artículo
1. Instalación de Nginx en Ubuntu
- Preparó los paquetes necesarios y aprendió cómo instalar Nginx usando APT
- Configuró el firewall (UFW) para permitir el tráfico de Nginx
2. Configuración básica
- Conoció la ubicación de los archivos, la configuración de hosts virtuales y la configuración SSL/TLS
3. Operaciones de gestión
- Dominó los comandos de iniciar, detener, reiniciar, recargar e investigar logs
4. Firewall y seguridad
- Abrió los puertos requeridos usando UFW y deshabilitó métodos HTTP innecesarios
5. Optimización del rendimiento y solución de problemas
- Optimizó los procesos de trabajo, habilitó HTTP/2, configuró el caché y resolvió problemas comunes
Próximos pasos
Ahora que comprende los pasos fundamentales de instalación y configuración de Nginx en Ubuntu, considere avanzar más:
- Aprender configuración avanzada de Nginx
- Estudiar balanceo de carga y funciones de proxy inverso
- Probar módulos adicionales como el módulo Nginx RTMP
- Mejorar la seguridad
- Considerar la implementación de un firewall de aplicaciones web (WAF)
- Introducir automatización
- Utilizar Ansible o Docker para automatizar la configuración y el despliegue
- Usar herramientas de monitoreo y optimización
- Implementar Prometheus o Grafana para visualizar y monitorear el rendimiento
Reflexiones finales
Nginx es un servidor web rápido y flexible capaz de soportar una amplia gama de casos de uso cuando está configurado correctamente. Aplique lo que ha aprendido aquí a proyectos reales y continúe explorando funciones adicionales a través de la documentación oficial de Nginx y los recursos de la comunidad.
¡Espero que esta guía le ayude a gestionar su servidor web de manera más eficiente!