Cómo montar un servidor web en Linux desde cero con Debian 12 y SSL
Tabla de contenidos [hide]
- 1 Introducción
- 2 1. ¿Qué es un servidor web y por qué usar Linux?
- 3 2. Instalar y configurar Nginx en Debian 12
- 4 3. Configurar un sitio web en Nginx con Virtual Hosts
- 5 4. Activar SSL en Nginx con Let’s Encrypt
- 6 5. Instalar y configurar Apache en Debian 12
- 7 6. Configurar un Virtual Host en Apache
- 8 7. Activar SSL en Apache con Let’s Encrypt
- 9 8. Habilitar y verificar SSL en Apache
- 10 9. Optimizar el rendimiento del servidor web
- 11 10. Conclusión
Introducción
Si estás buscando cómo instalar un servidor web en Linux, configurar Apache o Nginx, activar SSL en Apache o Nginx, o simplemente aprender cómo funciona un servidor HTTP, este tutorial es para ti.
Hoy configuraremos un servidor web en Debian 12 desde cero con Nginx y Let’s Encrypt. También explicaremos cómo hacer lo mismo con Apache, activando SSL en Apache2 y configurando host virtuales en Apache con a2ensite.
¿Qué aprenderás en este artículo?
Cómo instalar y configurar Nginx y Apache en Debian 12.
Cómo configurar un servidor web HTTP y HTTPS en Linux.
Cómo activar SSL en Apache y Nginx con Let’s Encrypt.
Cómo usar a2ensite en Apache para gestionar virtual hosts.
Cómo hacer que tu servidor web sea seguro y rápido.
1. ¿Qué es un servidor web y por qué usar Linux?
Un servidor web es un software que recibe peticiones HTTP y devuelve páginas web a los usuarios.
¿Por qué usar Linux para servidores web?
Mayor estabilidad que Windows Server.
Mayor seguridad y menos vulnerabilidades.
Gratuito y de código abierto.
Compatible con Apache, Nginx, PHP, MySQL, PostgreSQL y más.
Debian y Ubuntu son dos de las distribuciones Linux más usadas en servidores web. Este tutorial usa Debian 12, pero los pasos son similares en Ubuntu Server.
2. Instalar y configurar Nginx en Debian 12
Paso 1: Actualizar el sistema
Antes de instalar software, siempre actualiza el sistema:
sudo apt update && sudo apt upgrade -y
Paso 2: Instalar Nginx
Ejecuta:
sudo apt install nginx -y
Paso 3: Habilitar Nginx en el arranque
sudo systemctl enable nginx
sudo systemctl start nginx
Verifica que está activo:
sudo systemctl status nginx
Si ves «active (running)», significa que Nginx está funcionando.
3. Configurar un sitio web en Nginx con Virtual Hosts
Los host virtuales permiten alojar varios sitios en el mismo servidor.
Paso 1: Crear un archivo de configuración
sudo nano /etc/nginx/sites-available/mipagina.com
Copia este contenido:
server {
listen 80;
server_name mipagina.com www.mipagina.com;
root /var/www/mipagina;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Paso 2: Activar el sitio y reiniciar Nginx
sudo ln -s /etc/nginx/sites-available/mipagina.com /etc/nginx/sites-enabled/
sudo systemctl restart nginx
Si tu dominio apunta a la IP de tu servidor, tu página web estará en línea.
4. Activar SSL en Nginx con Let’s Encrypt
Paso 1: Instalar Certbot
sudo apt install certbot python3-certbot-nginx -y
Paso 2: Obtener un certificado SSL gratuito
sudo certbot --nginx -d mipagina.com -d www.mipagina.com
Certbot modificará la configuración de Nginx automáticamente para forzar HTTPS.
5. Instalar y configurar Apache en Debian 12
Si prefieres Apache en lugar de Nginx, sigue estos pasos.
Paso 1: Instalar Apache
sudo apt install apache2 -y
Paso 2: Habilitar Apache en el arranque
sudo systemctl enable apache2
sudo systemctl start apache2
Verifica que Apache está activo:
sudo systemctl status apache2
Si ves «active (running)», Apache está funcionando.
6. Configurar un Virtual Host en Apache
Paso 1: Crear el archivo de configuración
sudo nano /etc/apache2/sites-available/mipagina.com.conf
Añade lo siguiente:
<VirtualHost *:80>
ServerName mipagina.com
ServerAlias www.mipagina.com
DocumentRoot /var/www/mipagina
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Paso 2: Activar el Virtual Host con a2ensite
sudo a2ensite mipagina.com.conf
sudo systemctl restart apache2
Ahora tu sitio estará en línea.
7. Activar SSL en Apache con Let’s Encrypt
Paso 1: Instalar Certbot para Apache
sudo apt install certbot python3-certbot-apache -y
Paso 2: Obtener un certificado SSL
sudo certbot --apache -d mipagina.com -d www.mipagina.com
Esto generará el certificado y modificará la configuración de Apache para activar HTTPS automáticamente.
8. Habilitar y verificar SSL en Apache
Para asegurarte de que SSL está activo, ejecuta:
sudo apachectl configtest
Si ves Syntax OK, todo está correcto.
Reinicia Apache:
sudo systemctl restart apache2
Ahora tu sitio ya debería estar accesible con HTTPS.
9. Optimizar el rendimiento del servidor web
Ya sea con Nginx o Apache, puedes hacer algunas mejoras:
Habilitar compresión Gzip
Nginx:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml+rss text/javascript;
Apache:
sudo a2enmod deflate
sudo systemctl restart apache2
Optimizar caché
Nginx:
location ~* \.(?:ico|css|js|gif|jpg|jpeg|png|woff2?)$ {
expires 6M;
access_log off;
}
Apache:
sudo a2enmod expires
sudo systemctl restart apache2
10. Conclusión
Instalaste y configuraste Nginx y Apache en Debian 12.
Configuraste host virtuales con a2ensite en Apache.
Activaste SSL en Apache y Nginx con Let’s Encrypt.
Optimizaste rendimiento y seguridad de tu servidor web.
Siguientes pasos:
Instalar PHP y MySQL para un servidor web dinámico.
Configurar un servidor FTP en Linux para subir archivos.
Hacer backups automáticos con cronjobs.
Ahora tu servidor web en Debian 12 está listo. ¡Dime si quieres que agregue algo más!