WindowsMacSoftwareConfiguraciónSeguridadProductividadLinuxAndroidRendimientoConfiguraciónApple Todo

Cómo configurar un servidor web con Nginx en Debian

Editado 3 Hace unas semanas por ExtremeHow Equipo Editorial

DebianNginxServidor WebDesarrollo webConfiguración del servidorLinuxAdministración de sistemasCódigo abiertoInterfaz de línea de comandosTI

Cómo configurar un servidor web con Nginx en Debian

Traducción actualizada 3 Hace unas semanas

Nginx es un software de servidor web ampliamente utilizado, conocido por su alto rendimiento, estabilidad, bajo consumo de recursos y configuración sencilla. En esta guía detallada, veremos cómo configurar un servidor web con Nginx en el sistema operativo Debian. Antes de sumergirnos en los pasos, es esencial entender qué es Nginx y por qué es beneficioso para la configuración de servidores web.

Entendiendo Nginx

Nginx (pronunciado "engine-x") es un software de código abierto para servir web, hacer proxy inverso, almacenamiento en caché, balanceo de carga, transmisión de medios y más. Comenzó como un proyecto para abordar el problema C10k: manejar diez mil conexiones a la vez. Hoy en día, Nginx es popular por su rendimiento y eficiencia en la gestión de altas cargas. Puede actuar como un servidor proxy inverso para protocolos HTTP, HTTPS, SMTP, POP3 e IMAP, un balanceador de carga y un caché HTTP, entre otros usos. Al ser de código abierto, es gratuito y está en constante mejora por parte de colaboradores de todo el mundo.

Requisitos previos

Antes de comenzar, asegúrate de tener lo siguiente:

Una vez que cumplas con estos requisitos, puedes proceder a instalar y configurar Nginx en tu servidor Debian.

Paso 1: Actualiza tu servidor

El primer paso es asegurarse de que tu servidor esté actualizado con los últimos paquetes. Un sistema actualizado reduce problemas de incompatibilidad y mejora la seguridad. Usa el siguiente comando para actualizar tu servidor:

sudo apt update sudo apt upgrade

El comando apt update actualiza la lista de paquetes y sus versiones disponibles. El comando apt upgrade actualiza los paquetes antiguos con las nuevas versiones.

Paso 2: Instalar Nginx

El administrador de paquetes APT de Debian facilita la instalación de paquetes de software como Nginx. Ejecuta el siguiente comando para instalar Nginx:

sudo apt install nginx

Este comando obtendrá e instalará el paquete Nginx y sus dependencias. Una vez completada la instalación, Nginx comenzará a ejecutarse automáticamente.

Paso 3: Verifica la instalación de Nginx

Una vez instalado Nginx, es necesario verificar su instalación y asegurarse de que esté funcionando correctamente. Usa el siguiente comando para verificar el estado de Nginx:

sudo systemctl status nginx

La salida esperada muestra que Nginx está activo y funcionando. Si deseas iniciar o detener el servicio de Nginx, puedes usar:

sudo systemctl start nginx sudo systemctl stop nginx

Accediendo a Nginx

Después de confirmar que Nginx está ejecutándose, abre un navegador web y busca la dirección IP de tu servidor. Si no conoces la dirección IP de tu servidor, puedes averiguarla así:

hostname -I

Al ingresar la dirección IP de tu servidor en la barra de direcciones del navegador, deberías ver la página de bienvenida predeterminada de Nginx. Esto verifica que Nginx está renderizando páginas web correctamente.

Paso 4: Configurando el cortafuegos

En los sistemas Debian, UFW (Uncomplicated Firewall) es comúnmente usado como software de gestión de cortafuegos. Si UFW se está ejecutando en tu servidor, debes permitir el tráfico HTTP para acceder públicamente a tu servidor web a través del cortafuegos. Puedes verificar el estado actual de UFW de la siguiente manera:

sudo ufw status

Si UFW está activado, usa este comando para permitir el tráfico HTTP de Nginx:

sudo ufw allow 'Nginx HTTP'

Verifica nuevamente para asegurarte de que se aplican las reglas pertinentes:

sudo ufw status

Paso 5: Administrar el servicio Nginx

Nginx se ejecuta como un servicio en segundo plano. Puedes gestionar este servicio usando el comando systemctl. Aquí tienes algunos comandos systemctl útiles para gestionar Nginx:

Paso 6: Entender la configuración de Nginx

Los archivos de configuración de Nginx generalmente se encuentran en el directorio /etc/nginx. El archivo de configuración principal es /etc/nginx/nginx.conf, que contiene instrucciones para gestionar módulos, configurar permisos de usuario y más.

A menudo, la configuración de host virtual se gestiona por separado en el directorio /etc/nginx/sites-available. Este directorio contiene archivos de configuración para dominios individuales, que se vinculan simbólicamente a /etc/nginx/sites-enabled para activarse. También puedes encontrar fragmentos de configuración en /etc/nginx/snippets para configuraciones reutilizables.

Paso 7: Configurar el bloque del servidor

Los bloques de servidor, equivalentes a los hosts virtuales de Apache, permiten que Nginx ejecute múltiples sitios en un solo servidor. Primero, ve a /etc/nginx/sites-available/ y crea un nuevo archivo de configuración:

sudo nano /etc/nginx/sites-available/example.com

En el siguiente archivo de configuración, reemplaza "example.com" con tu nombre de dominio:

server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }

Con esta configuración, las solicitudes para 'example.com' serán proxificadas a la aplicación que se ejecuta en 127.0.0.1:8080. Usa valores predeterminados sensatos o ajusta la configuración según tus necesidades.

Paso 8: Habilitar el bloque del servidor mediante enlace simbólico

Crea un enlace simbólico a tu archivo de configuración en sites-enabled:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Esta acción habilita tu bloque del servidor. Prueba la nueva configuración para detectar posibles errores:

sudo nginx -t

Si no hay errores, reinicia Nginx para aplicar los cambios:

sudo systemctl restart nginx

Paso 9: Configurar un sitio web sencillo en HTML

Puedes probar la configuración creando un archivo HTML estático básico. Crea un nuevo directorio que servirá como raíz web:

sudo mkdir -p /var/www/example.com/html

Establece los permisos adecuados:

sudo chown -R $USER:$USER /var/www/example.com/html

Crea un archivo HTML sencillo:

nano /var/www/example.com/html/index.html

Agrega el siguiente contenido a index.html:

<!DOCTYPE html> <html> <head> <title>Bienvenido</title> </head> <body> <h1>¡Bienvenido a example.com!</h1> </body> </html>

Ve a http://your_server_ip o http://example.com para ver tu página web.

Paso 10: Implementar seguridad con SSL/TLS

Para asegurar tu servidor web, se recomienda implementar un certificado SSL/TLS para el sitio. Los certificados SSL gratuitos pueden obtenerse de Let's Encrypt, una autoridad certificadora que ofrece certificados gratuitos con soporte de automatización.

Instala la utilidad Certbot y el complemento de Nginx para la obtención e instalación del certificado SSL:

sudo apt install certbot python3-certbot-nginx

A continuación, solicita un certificado usando Certbot:

sudo certbot --nginx

Certbot solicitará la información necesaria, como tu nombre de dominio y correo electrónico. Al completarse con éxito, Certbot recarga automáticamente Nginx. Visita https://example.com para confirmar la conexión segura HTTPS con el ícono de candado.

Renovación automática del certificado SSL

Certbot configura un trabajo de systemd para gestionar automáticamente las renovaciones de certificados SSL. También puedes realizar una verificación de renovación manual:

sudo certbot renew --dry-run

Verifica la actualización y asegúrate de que sea exitosa sin errores.

Reflexiones finales

Una vez que Nginx está configurado, puedes alojar y servir varios sitios web. Recuerda monitorear el rendimiento del servidor, gestionar logs y mantener actualizados Nginx y los paquetes del servidor para mantener la seguridad y eficiencia. El servidor web Nginx es una herramienta poderosa adecuada para muchas tareas web y necesidades de arquitectura.

Conclusión

Configurar un servidor web con Nginx en Debian implica definir la configuración, añadir bloques de servidor y garantizar la seguridad con SSL. Comprender los fundamentos de la instalación, configuración y gestión de Nginx sienta las bases para aplicaciones más complejas e implementaciones de servicios. Ahora deberías tener un servidor web en funcionamiento listo para servir páginas o aplicaciones con alta eficiencia.

Si encuentras algo incorrecto en el contenido del artículo, puedes


Comentarios