Javier Jerónimo


Balanceador + WordPress – test de disponibilidad del servidor

04 Dec 2014 » programacion

Interesante que no haya encontrado nada al respecto en internet, aunque tampoco he buscado mucho porque la solución es trivial.

El problema:

  • Cache frontal / balanceador de carga: Varnish en nuestro caso (Genexies Mobile).
  • Conjunto de servidores WordPress (balanceo de carga, alta disponibilidad…)
  • Varnish usa un “probe” para comprobar la disponibilidad de los “backends” que forman un “director” (un conjunto de servidores que ofrecen el mismo servicio).
  • Queremos que el “probe” de Varnish no dependa de recursos de WordPress (un artículo, una página…) pero que compruebe conectividad con base de datos.

Opciones:

  • probe = GET /
    • Es un recurso dinámico de WordPress, por ejemplo, la página establecida como principal.
    • Requiere conectividad con BDD.
    • PHP
  • probe = GET /license.txt
    • No es un recurso dinámico de WordPress, sirve como prueba estable.
    • No requiere conectividad con BDD.
    • text/plain
  • probe = GET /alive.php
    • No es un recurso dinámico de WordPress.
    • Requiere conectividad con BDD.
    • PHP
    • No existe en WordPress.

¿La solución?

alive.php

<?php

require './wp-config.php';

// Create connection
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD);

// Check connection
if ($conn->connect_error) {
    die("FAILED: " . $conn->connect_error);
}
echo "ALIVE";
?>

Hecho.

¿Qué toca ahora?

  • hg pull -u; hg branch …  hg ci -m”…” && hg push –new-branch
  • Integrar…
  • Probar en dev / pre: vagrant provision…
  • Desplegar en pro: vagrant provision…