← Artículos

Parte de la web se muda a Cloudflare: los procesos del móvil se cierran

Hasta ahora, cada visita a este sitio pasaba por un móvil Android. El móvil levantaba el servidor, PHP montaba la página y un túnel la sacaba a internet. Funcionaba, y me gustaba: la web entera cabía en un teléfono. El problema es que un móvil no está pensado para eso, y al final se nota.

Qué ha cambiado

El sitio ya no lo sirve el móvil. Las páginas se escriben una vez, cuando publico algo, y se reparten desde la red de Cloudflare, que guarda los archivos y los entrega a quien entra. No hay ninguna máquina encendida esperando visitas y no hay base de datos: los artículos son archivos de texto, uno por artículo, y el registro de cambios es otro archivo.

Los juegos se quedan donde estaban. El tres en raya, el bingo y el moto necesitan memoria de verdad —quién juega, qué números han salido, qué partida sigue abierta— y eso no se puede dejar hecho de antemano. Así que la web se ha partido en dos: lo que se puede escribir una vez, a Cloudflare; lo que hay que calcular en el momento, al móvil.

Por qué: los procesos se cierran

Android no es un servidor. Está pensado para que las aplicaciones no se queden consumiendo batería y memoria por detrás, y Termux, que es lo que uso para tener un Linux dentro del móvil, sufre eso continuamente. Los procesos se acaban cerrando: unas veces los mata el propio sistema, otras la capa que el fabricante pone encima de Android, y otras se van con un reinicio que no he pedido.

He peleado con eso y he hecho los deberes. Le he dado permiso para que no le aplique el ahorro de batería, le he dicho al sistema que no cierre sus procesos de fondo y he montado el arranque automático para que todo vuelva solo al encender. Además tengo un vigilante que levanta los servicios en cuanto se caen, y funciona: si mato el servidor a mano, vuelve solo en unos segundos.

Ayuda, pero no lo garantiza. El problema son las veces que no vuelve, o que se cae todo a la vez y el vigilante se va con ello: ahí no queda nadie que arranque nada y hay que entrar a mano. Y no hay forma de asegurar que un proceso siga vivo, solo de hacerlo más probable.

Cuando el servidor se cae, la web no responde. El túnel se queda sin origen y Cloudflare contesta con un error suyo, el 1033, que además tiene mala pinta: parece que la web está rota cuando lo que pasa es que el móvil no está. Lo he visto unas cuantas veces: el túnel se reinicia solo y, durante medio minuto, el sitio devolvía ese error. Medio minuto no es nada, pero es la señal de que estaba dependiendo de algo que no puedo controlar.

Qué se gana

Qué se pierde

Lo que queda por delante

Los juegos son el único motivo por el que merece la pena tener el móvil encendido, así que es lo siguiente que quiero mirar. Hay tres caminos y ninguno me convence del todo: una máquina pequeña que esté siempre encendida sin gastar como un servidor, un plan de pago muy básico que me deje tener procesos de verdad, o terminar de pasar los juegos a algo que no necesite ninguna máquina detrás.

Mientras tanto, esto es lo que hay: la web ya no se queda sin responder porque el móvil tenga un mal día, y los juegos sí. Un paso de cada vez.

Si quieres ver cómo está montado ahora, está contado en Sitio web ecológico.

Todos los artículos