Anulación de sitios web individuales alojados en NGINX para mostrar una página de mantenimiento

Anulación de sitios web individuales alojados en NGINX para mostrar una página de mantenimiento

Tenemos una arquitectura mediante la cual alojamos varios sitios en NGINX. Cada sitio NGINX tiene su propia configuración. Cada uno de estos sitios apunta a una base de código común pero apunta a un nombre de dominio diferente y su SSL asociado.

Lo que queremos hacer es durante el mantenimiento mostrar una página Maintenance.html común una vez que se realiza la solicitud de la página. Si bien podemos ingresar al archivo website.conf para cada sitio web e insertar una regla de reescritura, no es una solución completa; es más bien un truco que estamos tratando de evitar.

Nos gustaría implementar esto en el archivo nginx.conf en el nivel raíz, mediante el cual cualquier solicitud que llegue a través de (443) debe ser interceptada (antes de que se cargue su propio archivo de configuración) y redirigida a una página Maintenance.html común.

¿Cómo se puede lograr esto a nivel del archivo nginx.conf?

Gracias

Respuesta1

Puede realizar una edición única de todos los hosts (y no olvide editar una plantilla a partir de la cual se crean) y después de eso nunca necesitará editarlos todos.

Crea un archivo vacío, al que puede llamar, por ejemplo, "all_vhosts_override". Agrega include "all_vhosts_override";cerca de la parte superior de cada definición de vhost, sobre todo locationy aliasentradas.

Cuando necesita anular algo en todos los vhosts a la vez, agrega declaraciones a ese archivo y recarga nginx. Todos los vhosts recibirán la configuración de este único archivo, no necesitarás actualizar sus configuraciones individuales. Simplemente borre el archivo de anulación vacío cuando haya realizado el mantenimiento y vuelva a cargarlo.

información relacionada