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…