Comencé a alojar sitios hace un tiempo usando Cherokee. Para fuentes externas (FastCGI, etc.) tiene la opción de iniciar el proceso si no puede encontrar uno ejecutándose en el puerto o socket designado. Esto es genial porque significa que si PHP o un sitio de Django se cae (como ocurre ocasionalmente), se reinicia automáticamente.
En un servidor nuevo que usaba PHP-FPM, no podía usar Cherokee (tiene un error con PHP), así que me mudé a NGINX. Realmente me gusta NGINX (por su estilo de configuración), pero tengo serios problemas con los procesos que fallan y nunca reaparecen. PHP hace esto a veces, pero los sitios de Django son más problemáticos. He creado secuencias de comandos de inicio para ellos y aparecen en el arranque, pero esto no me ayuda si fallan entre reinicios.
Supongo que estoy buscando un proxy FastCGI. Algo que, como Cherokee, sepa qué procesos deberían ejecutarse en qué puertos/sockets y los reaparece a pedido. ¿Existe tal cosa? ¿Hay alguna forma de integrar esto en NGINX (para facilitar la configuración)?
Respuesta aceptada:
¿Qué tal daemontools y específicamente la herramienta de supervisión?
supervisar supervisa un servicio. Inicia el servicio y reinicia el servicio si muere. Configurar un nuevo servicio es fácil:todas las necesidades de supervisión son un directorio con un script de ejecución que ejecute el servicio.