Aprende Inteligencia Artificial y Acelera tu Futuro

Descubre cómo la IA puede multiplicar tu productividad y cambiar tu forma de trabajar.

Acceder al Curso Ahora

Cómo montar un servidor web en Linux desde cero con Debian 12 y SSL

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!

Tutoriales Más Vistos

Posts Más Vistos