Inicio > Curiosidades y varios > La instalación del servidor para WordPress más rápido (2018)

La instalación del servidor para WordPress más rápido (2018)

Nuestros amigos de WPIntense han publicado ayer una nueva configuración de servidor para hacer que WordPress vuele.

Hoy la hemos probado y la verdad es que la velocidad es ASOMBROSA.

WPIntense son una empresa de WordPress enfocada a hacer sus instalaciones las más rápidas del planeta. Sus clientes sueñan con sitios web de WordPress rápidos, escalables y gigantescos. Y ellos hacen realidad esos sueños.

La verdad es que WPI nos sorprenden cada vez que trabajamos con ellos. Son gente que sabe de verdad de lo que está hablando.

La configuración de servidor perfecta para WordPress (2018)

Para conseguir un servidor optimizado para que WordPress funcione lo más rápido posible es usar:

  • Ubuntu 18.04: OJO no usar 18.10 que solo tiene soporte durante 9 meses, sino 18.04 que tiene soporte hasta 2023.
  • MySQL 8: El MySQL más rápido nunca lanzado.
  • Nginx: El servidor web más rápido.
  • PHP 7.2: El PHP más rápido disponible.
  • Redis: El caché de objetos y variantes más rápido disponible.
  • NGINX FastCGI Cache: El acelerador HTTP más rápido y que además es sencillo de usar.
  • Fail2Ban
  • Let's Encrypt

Lo más sencillo para probarlo es usar DIGITAL OCEAN pero funciona en cualquier servidor que tenga Ubuntu 18.04.

Comandos para comenzar la instalación

Configurar Redis como un caché no persistente

No queremos que Redis escriba en el disco. Solo lo queremos usar como caché de objetos y variantes.

Editamos /etc/redis/redis.conf y añadimos las siguientes dos líneas al final:

Y añadimos:

La primera línea (maxmemory) la podemos ajustar entre 200mb y 20000mb. Depende de la memoria disponible. En un servidor con 1GB usamos 100mb.

La segunda línea (maxmemory-police) fuerza el uso de first-in-first out en la eliminación de las claves antiguas.

Luego hay que buscar las líneas:

Y comentarlas para evitar la escritura en disco:

Guardamos los datos (ESC :wq y apretamos ENTER). Y hacemos un restart de REDIS:

Configuración del dominio en el DNS

Antes de continuar debemos apuntar la entrada A del dominio al servidor y también la entrada A (o CNAME) de www.

Configuración de NGINX más rápida

WPINTENSE han subido los archivos de configuración a GITHUB porque son cientos de líneas. Esto permite servir la web en el puerto 80 (no SSL) para completar la instalación inicial de WordPress. Luego ya se puede configurar SSL con LetsEncrypt.

Estos archivos contienen el archivo config y algunos fragmentos de código que hacen el sitio más rápido y seguro.

Estos archivos usan la libreria nginx_fastcgi_cache para la cual hay que crear una carpeta de caché:

Volvemos a arrancar NGINX:

Podemos comprobar que la web ya se muestra accediendo al dominio. Nos saldrá un error 404 NOT FOUND de NGINX.

Instalamos WordPress

Primero creamos la base de datos:

Y luego ejecutamos este SQL. Una línea después de la otra. OJO: Hay que reemplazar ‘CHOOSEASTRONGPASSWORD' con una contraseña segura:

Y podemos instalar WordPress con:

Ahora al volver a cargar el dominio ya aparece la pantalla de instalación de WordPress. Ahí introducimos el nombre de la base de datos, el nombre de usuario de la misma y su contraseña ‘CHOOSEASTRONGPASSWORD'.

Añadir SSL con Let's Encrypt

Es simple con el siguiente script de NGINX:

Ojo: Hay que cambiar ACME por el nombre del dominio que queremos proteger

Y en este comando lo mismo: cambiarmos acme por la carpeta que hemos creado en el punto anterior y el nombre del dominio yourdomain.com y www.yourdomain.com por el dominio para el que estamos instalando esto.

Una vez ejectuado nos dice donde ha guardado el certificate chain (“fullchain.pem”) y el key file (“privkey.pem”).

Editamos el archivo de configuración de NGINX:

Quitamos el comentario de las líneas:

Y añadimos la ruta a fullchain.pem y privkey.pem que hemos obtenido en el punto anterior.

Y guardarmos.

Finalmente para que el certificado se vaya actualizando mensualmente hay que ejecutar:

Y al final del archivo añadimos:

Le hacemos un restart al NGINX:

Optimizamos MySQL

Editamos el archivo mysqld.cnf

Añadimos esto al final del archivo:

Y una vez que el servidor haya funcionado unos días con tráfico real podemos optimizar estos ajustes.

Optimizar los ajustes de MySQL después de haber recibido tráfico

Después de unos días ejecutamos lo siguiente:

Nos da información en rojo y verde sobre temas en los que hay que trabajar y en verde los que son ok.

Optimizar tu configuración PHP para WordPress

Optimizamos el archivo php.ini:

Lo que hay que cambiar si o si son estos ajustes:

Y luego hay que editar el archivo www.conf

El mejor rendimiento lo conseguimos con:

Una vez guardado el archivo modificado ejecutamos:

Configuramos fail2ban

Lo más sencillo para configurarlo completamente es usar el plugin de WordPress: WP fail2ban plugin.

Configuramos Redis

Ya hemos configurado REDIS para guardar la caché en RAM y no escribir en disco. Ahora solo falta usar el plugin adecuado: Redis Object Cache de Till Kruss y NO el plugin WP Redis (esto es importante).

¿ME hace falta un plugin de caché en WordPress?

No. NGINX FASTCGI CACHE se ocupa de todo eso y guarda la cache en /var/www/cache. Esto es mucho más rápido porque guarda el HTML completo usando NGINX antes de que se ejecute PHP o MYSQL.

Para vaciar esta caché al publicar un artículo nuevo usamos este plugin (también de Till Kruss): Nginx Cache plugin.

 

La publicación original (en inglés) de WPIntense está aquí: “Installing the fastest WordPress stack with Ubuntu 18.04 and MySQL 8 (Dave Hilditch)

Descubre porqué somos Apasionados del Marketing

Mira también

Google Chrome permite reproducir vídeos en una ventana flotante

Google Chrome permite reproducir vídeos en una ventana flotante

Google Chrome ya permite de forma predeterminada el vídeo “imagen en imagen”. Esto significa que …

Deja un comentario

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

Los comentarios de está página están moderados y no siempre aparecerán inmediatamente en la página al ser enviados. No se permiten comentarios contrarios a las leyes españolas. Tampoco se permiten descalificaciones personales, comentarios maleducados, ataques directos, ridiculizaciones personales, calificativos insultantes de cualquier tipo, estén dirigidos a los autores de la página o a un comentarista. Por favor cíñete al tema, no utilices los comentarios como autopromoción sin aportar nada, no comentes de manera repetitiva, y mucho menos con varias identidades o suplantando a otros comentaristas. Los comentarios que incumplan estas normas serán eliminados.
Destacar que todos los enlaces que consideremos inadecuados, estén rotos o lleven a contenidos contrarios a las leyes españolas serán eliminados.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.