Como configurar servidor web nginx
Configurar un servidor web Nginx implica varios pasos clave, desde la instalación hasta la configuración de un bloque de servidor para tu sitio. A continuación, te guío a través del proceso general.
⚙️ Instalación
El primer paso es instalar Nginx en tu sistema. La forma de hacerlo varía según el sistema operativo que uses.
En sistemas basados en Debian/Ubuntu:
Bashsudo apt update sudo apt install nginx
En sistemas basados en RHEL/CentOS:
Bashsudo yum install epel-release sudo yum install nginx
En Arch Linux:
Bashsudo pacman -S nginx
Una vez instalado, puedes iniciar el servicio de Nginx y habilitarlo para que se ejecute automáticamente al arrancar.
sudo systemctl start nginx
sudo systemctl enable nginx
Para verificar que se instaló correctamente, visita la dirección IP de tu servidor en un navegador. Deberías ver la página de bienvenida predeterminada de Nginx.
💻 Configuración básica
La configuración principal de Nginx se encuentra en el archivo /etc/nginx/nginx.conf
. Sin embargo, para sitios individuales, es mejor crear archivos de configuración separados dentro del directorio /etc/nginx/sites-available/
.
1. Crear un bloque de servidor (Server Block)
Un "bloque de servidor" es un archivo de configuración que define cómo Nginx maneja las solicitudes para un dominio específico.
Crea un nuevo archivo de configuración para tu sitio. Reemplaza tudominio.com
con tu nombre de dominio.
sudo nano /etc/nginx/sites-available/tudominio.com
Dentro de este archivo, añade el siguiente código:
server {
listen 80;
listen [::]:80;
root /var/www/tudominio.com/html;
index index.html index.htm index.nginx-debian.html;
server_name tudominio.com www.tudominio.com;
location / {
try_files $uri $uri/ =404;
}
}
listen 80
: Nginx escucha en el puerto 80 (HTTP).root
: Define la ruta donde se encuentran los archivos de tu sitio web.index
: Establece el archivo predeterminado que Nginx buscará al acceder a la raíz.server_name
: El nombre de dominio para el que está configurado este bloque.
2. Crear el directorio raíz
Crea el directorio que especificaste en la línea root
.
sudo mkdir -p /var/www/tudominio.com/html
Crea un archivo index.html
simple dentro de este directorio para probar la configuración.
sudo nano /var/www/tudominio.com/html/index.html
Añade algún contenido, como "¡Hola, mundo!".
🔄 Habilitar y probar el sitio
Para que Nginx use tu nueva configuración, debes crear un enlace simbólico (symlink) desde el directorio sites-available
al directorio sites-enabled
.
sudo ln -s /etc/nginx/sites-available/tudominio.com /etc/nginx/sites-enabled/
Para asegurarte de que la sintaxis de tu configuración es correcta, ejecuta el siguiente comando:
sudo nginx -t
Si todo está bien, verás un mensaje que dice syntax is ok
y test is successful
. Finalmente, reinicia Nginx para aplicar los cambios.
sudo systemctl restart nginx
Ahora, si visitas http://tudominio.com
en tu navegador, deberías ver el contenido de tu archivo index.html
.
🔒 Configuración SSL (HTTPS)
Para asegurar tu sitio con SSL/TLS y habilitar HTTPS, se suele usar Let's Encrypt con la herramienta certbot
.
Instala Certbot y el plugin de Nginx:
Bashsudo apt install certbot python3-certbot-nginx
Obtén e instala el certificado:
Bashsudo certbot --nginx -d tudominio.com -d www.tudominio.com
Certbot
modificará automáticamente tu archivo de configuración de Nginx para incluir las directivas SSL y redirigir el tráfico HTTP a HTTPS.Verifica la renovación automática:
Bashsudo systemctl status certbot.timer
Esto confirmará que el temporizador para la renovación automática está activo, asegurando que tu certificado se renueve antes de que caduque.