javieruiz.me

Mi propio servidor en la nube, montado desde cero

Soy Javi, estudiante de 2.º de ASIR. Esta web vive en un Ubuntu Server en AWS que resuelve su propio dominio con BIND9 y sirve tres sitios con Apache, todos con HTTPS de Let's Encrypt.

Ir al blogIr a la academia

Tres sitios, un servidor

Cada subdominio es un virtual host de Apache con su propia carpeta y su propio certificado.

javieruiz.me

Portada

Esta página: HTML y CSS estáticos, generada con IA y servida tal cual por Apache.

Estás aquí
blog.javieruiz.me

Blog con WordPress

PHP + MariaDB. El CMS más usado del mundo, para publicar artículos sobre el ciclo.

Visitar el blog →
academia.javieruiz.me

Academia con Moodle

Plataforma de cursos (LMS), la misma familia que usan muchos campus virtuales.

Entrar a la academia →

Qué pasa cuando escribes javieruiz.me

El paquete azul hace el recorrido: primero el DNS te da la IP, después Apache elige el sitio por el nombre que pediste.

Tu navegadorHTTPS · 443 DNS · BIND9UDP 53 → 184.197.149.32 Apache 2.4virtual hosts javieruiz.me · portada blog. · WordPress academia. · Moodle

Presentación: cómo lo monté

Cinco pasos, en el mismo orden en que se hicieron. Usa las flechas o los botones.

1 · DNS propio con BIND9

Zona javieruiz.me con registros A para el dominio, blog y academia, un CNAME para www, un TXT de verificación y la zona inversa. Servidor autoritativo y no recursivo (recursion no;).

2 · Apache con virtual hosts

Un fichero por sitio en /etc/apache2/sites-available/ con su ServerName y DocumentRoot, activado con a2ensite. Apache decide qué sitio servir leyendo la cabecera Host de la petición.

3 · HTTPS con Let's Encrypt

Certbot (instalado con snap) pide un certificado gratuito para cada sitio, crea el vhost del puerto 443 y redirige todo el tráfico HTTP a HTTPS. El candado garantiza cifrado, no que una web sea de fiar.

4 · WordPress

PHP 8.3 + MariaDB: base de datos y usuario propios con permisos solo sobre ella, ficheros con propietario www-data y prefijo de tablas cambiado para dificultar ataques.

5 · Moodle 5.1

Segundo CMS. Lo elegí porque es un LMS libre muy usado en educación y encaja con el tema del ciclo. En Moodle 5.1 el DocumentRoot apunta a public/ y los datos van en /var/moodledata, fuera de la web.