Saltar al contenido
Arnau Paz

Mis proyectos · · sifos

[INTERN] Mi servidor WordPress en casa

Cómo monté un WordPress sobre Ubuntu Server con Nginx como proxy inverso, PHP-FPM y MariaDB, con todo el tráfico cifrado.

Esquema del servidor WordPress: Nginx, PHP-FPM y MariaDB

1. Objetivo

Tener mi propio servidor web en casa entendiendo cada pieza, en lugar de usar un hosting ya hecho.

2. Arquitectura

PiezaQué haceEscucha en
Nginx (proxy inverso)Recibe las visitas con HTTPS (TLS 1.2 y 1.3) y añade cabeceras de seguridad443 · el 80 redirige a HTTPS
Nginx (WordPress)Sirve WordPress y pasa el PHP a PHP-FPM127.0.0.1:8080
PHP 8.3-FPMEjecuta WordPressSocket Unix
MariaDB 10.11Guarda la base de datos wordpress127.0.0.1:3306

3. Pasos

  1. Instalar Nginx, PHP-FPM y MariaDB en Ubuntu Server 24.04.
  2. Crear un certificado para arnau.site y www.arnau.site (RSA de 3072 bits).
  3. Configurar Nginx con tres bloques: la redirección de HTTP a HTTPS, el proxy inverso del 443 y WordPress en el 8080, solo en local.
  4. Crear la base de datos y un usuario con permisos solo sobre ella.
  5. Descargar WordPress, comprobar su suma SHA-1 y darle los permisos de www-data.
  6. Instalarlo con un usuario administrador que no se llama «admin».

Fragmento del proxy inverso (simplificado):

server {
    listen 443 ssl;
    server_name arnau.site www.arnau.site;
    ssl_protocols TLSv1.2 TLSv1.3;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

4. Seguridad

  • El puerto 8080 y MariaDB solo escuchan en 127.0.0.1: desde fuera no existen.
  • Los protocolos antiguos (TLS 1.0 y 1.1) están desactivados.
  • Nginx no muestra su versión (server_tokens off).
  • Cabeceras X-Content-Type-Options, X-Frame-Options y Referrer-Policy.
  • Los ficheros .ht* no se pueden descargar.

5. Resultado

WordPress funcionando en https://arnau.site, con cada pieza en su sitio y solo el proxy expuesto.

arnau.site Sitio web de Arnau Paz de Herralde

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio