Solucionar timeout en reinicio de servicios en CentOS

En varias ocasiones, me he encontrado con que al reiniciar servicios en un servidor CentOS con un uptime relativamente elevado (1 año de uptime o más), estos no se reinician como deben, y el service “x” restart devuelve constantemente un timeout, entrando el reinicio del servicio en bucle.

Además, esto me ha ocurrido en varias actualizaciones de paneles Plesk o Webmin, lo que puede dar lugar a problemas más graves como inconsistencias en el panel que intentamos actualizar.

Para solucionar el problema, debemos liberar las sesiones de systemd y posteriormente recargar el demonio.

Primeramente, crearemos un directorio al que mover dichas sesiones:

 

Seguidamente, moveremos todas las sesiones a dicho directorio (Puede tardar hasta un minuto si son muchas):

 

Y por último, recargamos el demonio:

 

Con esto, no deberiamos volver a observar los timeouts al reiniciar servicios.

Modificar el php_handler de todos los dominios en Plesk

En ocasiones, y por motivos de seguridad y rendimiento, es necesario modificar el modo de ejecución de un sitio web de módulo apache a FastCGI o FPM. Realizar esta tarea dominio por dominio es tediosa, pero con el siguiente script se puede realizar en segundos.

Consideraciones previas

Es necesario tener en cuenta antes del cambio que el document root de todos y cada uno de los dominios disponga de los permisos y el owner correspondiente.

Una vez comprobado esto, podemos proceder a realizar el cambio:

 

Con este for, obtendremos el listado de todos los dominios del servidor, los cuales iremos cambiando su modo de ejecución a FastCGI.

Por supuesto, es posible “saltarse” algún dominio mediante grep -v, y, así mismo, el modo de ejecución se puede cambiar también a fpm, por ejemplo. Los handlers disponibles son los siguientes (depende del servidor).

 

 

Como bajar el TTL a todos los dominios en un servidor Plesk

Previo a una modificación en una entrada DNS, es necesario considerar el TTL (time to life) de las entradas DNS, puesto que si el TTL de las mismas es elevado (1 día, por ejemplo) es posible que los cambios realizados no sean visibles hasta que se refresquen los registros DNS.

En ocasiones, sobretodo antes de realizar migraciones de servidores, nos encontramos con que es necesario modificar los TTLs de 100 o más dominios, lo cual es una tarea tediosa de realizar a mano. Por suerte, existe la posibilidad de realizar esto de forma semi-automática.

Para ello, y siempre, por precaución, realizaríamos un  backup de la bbdd psa de Plesk:

 

Después, generaríamos un script cambiar_ttl.sh con el siguiente contenido:

 

 

Este script, primeramente, obtiene un listado de todos los dominios con gestión DNS en la bbdd psa, y los vuelca a un fichero /root/domains_list, del que leé después y actualiza el registro ttl a 300 segundos (5 minutos). Por supuesto, es posible editar este valor a mas o menos tiempo.

Por último, solo quedaría dar permisos al script y ejecutarlo.