Nginx - Instalación y uso básico


Tabla de contenidos
- ¿Qué es Nginx?
- Instalación de Nginx
- En Ubuntu/Debian
- En CentOS/RHEL
- Estructura de archivos de Nginx
- Configuración básica
- Usar Nginx como proxy inverso
- Seguridad básica
- Conclusión
Nginx es un servidor web ligero, de alto rendimiento y de código abierto que se utiliza ampliamente para servir sitios web estáticos, actuar como proxy inverso y balanceador de carga. En esta guía aprenderás cómo instalar y hacer una configuración básica de Nginx.
¿Qué es Nginx?
Nginx (pronunciado “engine-x”) es un servidor web diseñado para manejar muchas conexiones concurrentes con poca memoria y recursos. Es ideal para proyectos que requieren velocidad, eficiencia y escalabilidad.
Instalación de Nginx
En Ubuntu/Debian
sudo apt update
sudo apt install nginx
Una vez instalado, puedes verificar que esté funcionando con:
systemctl status nginx
También puedes abrir tu navegador y visitar http://localhost
para ver la página de bienvenida de Nginx.
En CentOS/RHEL
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
Estructura de archivos de Nginx
La estructura principal suele ser:
/etc/nginx/
├── nginx.conf
├── sites-available/
└── sites-enabled/
nginx.conf
: archivo principal de configuración.sites-available/
: contiene archivos de configuración de sitios.sites-enabled/
: contiene enlaces simbólicos a los sitios activos.
Configuración básica
Para servir un sitio simple, puedes crear un archivo en sites-available
:
sudo nano /etc/nginx/sites-available/mi-sitio
Contenido de ejemplo:
server {
listen 80;
server_name midominio.com www.midominio.com;
root /var/www/mi-sitio;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Luego crea el directorio y una página de prueba:
sudo mkdir -p /var/www/mi-sitio
echo '<h1>Hola desde Nginx</h1>' | sudo tee /var/www/mi-sitio/index.html
Activa el sitio con:
sudo ln -s /etc/nginx/sites-available/mi-sitio /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Usar Nginx como proxy inverso
Una de las funciones más poderosas de Nginx es actuar como proxy inverso para aplicaciones backend (por ejemplo, Node.js, Python, etc.):
server {
listen 80;
server_name api.midominio.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Esto redirige todas las solicitudes a tu backend que corre en el puerto 3000.
Seguridad básica
- Firewall: Asegúrate de permitir tráfico HTTP/HTTPS:
sudo ufw allow 'Nginx Full'
- SSL con Let’s Encrypt:
Puedes usar Certbot para habilitar HTTPS de forma gratuita:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
Conclusión
Nginx es una herramienta versátil y poderosa para cualquier desarrollador web. Ya sea que estés sirviendo archivos estáticos, aplicaciones dinámicas o actuando como proxy, Nginx es una excelente opción.
¡Esperamos que esta guía te haya sido útil para comenzar con Nginx y mejorar la eficiencia de tus sitios web!