Pregunta

Tengo un sitio web que se ejecuta en una pila de Linux/Apache/Tomcat que debe desconectarse automáticamente cada pocos meses para el mantenimiento del servidor, que durará un período de tiempo arbitrario.¿Cuáles son algunas opciones para que Apache instale y elimine una página de "mantenimiento del servidor"?

Necesito poder controlar esto mediante un script de shell.(Las respuestas que proporcionó Google giran en torno a la edición manual de la configuración del servidor, ¡y no quiero estar en la oficina a las 3 am!) Supongo que podría hacer que el script se coloque en un archivo .htaccess y lo elimine cuando esté listo. pero eso parece poco elegante.


Comentario de respuesta:

la respuesta de mike parece la respuesta de mejores prácticas, aunque lo que haré probablemente sea más parecido la respuesta de dan porque el proveedor de alojamiento externo controla el equilibrador de carga y no quiero lidiar con ese lío.¡Gracias!

¿Fue útil?

Solución

Tenemos una configuración que hace precisamente eso pero incluye más que solo Apache.Hay un equilibrador de carga y dos servidores detrás.Ambos servidores web sirven sitios web utilizando Apache y uno de ellos tiene un host virtual adicional que sirve una página de mantenimiento HTML simple.El equilibrador de carga tiene un servicio HTTP virtual que redirige las solicitudes a servidores reales.Este servicio virtual cuenta con tres servidores reales:dos son servidores reales y el tercero es una IP virtual en el segundo servidor que apunta a la página de mantenimiento.Los servidores reales se ponderan de manera que los terceros tengan el menor peso posible y el equilibrador de carga utiliza un algoritmo de ponderación fijo.Entonces, cuando los sitios web reales se desconectan por cualquier motivo, todas las solicitudes van al host de mantenimiento y los usuarios ven la bonita página de error con un número de teléfono.De hecho, uso un pequeño script para comprobar el estado de los servidores reales, de modo que la página de mantenimiento se muestre tan pronto como haya algún signo de problema.

PD.Utilizo Load Master 1500 para el equilibrador de carga.

Otros consejos

Es bastante fácil iniciar Apache con un archivo de configuración personalizado.En mi sistema:

httpd -f <config>

Utilizo esto regularmente en combinación con un script de shell y una configuración extremadamente simple como marcador de posición de mantenimiento.El script simplemente detiene mi Apache normal e inicia esto.

crea 2 archivos de configuración e intercámbialos de un lado a otro

Si solo cambia una pequeña parte del archivo, combínelos con una especie de preprocesador y genere las versiones estándar y "fuera de línea" de una fuente e intercambie entre ellas.

IIRC, los archivos de configuración de Apache se compilan usando CPP de todos modos

Hemos hecho algo similar.Tenemos un index.html que redirige a la página principal de nuestro sitio.Cuando tenemos mantenimiento ejecutamos un script que cambia la redirección en el archivo html.Luego revisamos el script en cron y viola la ventana de mantenimiento automático.

¡Espero que ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top