Saltar al contenido

Página de mantenimiento en nginx, mejores prácticas

Solución:

Solución 1:

Esto es lo que hago.

            if (-f $document_root/maintenance.html) {
                    return 503;
            }
            error_page 503 @maintenance;
            location @maintenance {
                    rewrite ^(.*)$ /maintenance.html break;
            }

Si el archivo está allí, mostrará la página de mantenimiento. Una vez que elimine el archivo, volverá a la normalidad.

Solucion 2:

Creo que la mejor práctica sería devolver un código de estado 500.

Creo que te refieres a 503 en lugar de 500.

ellos usan if para realizar la redirección y, de acuerdo con la documentación de nginx, no es seguro usar ifs.

No solo return es 100% seguro dentro if en location contexto.

De acuerdo con la documentación de nginx, puede especificar un código de estado HTTP como último argumento para try_files. Intenté esto pero no funcionó.


Solución 3:

Sí, es importante utilizar HTTP 503 para temp. redireccionamientos. Esa es la forma en que lo resolví:

server {
        listen      80;
        server_name joergfelser.at;
        root    /var/www/joergfelser.at/;

        location / {
            if (-f $document_root/maintenance.html) {
                return 503;
           }
            ... # rest of your config, it's important to have 
            ... # the maintenance case at the very top
         }

        error_page 503 @maintenance;
        location @maintenance {
                rewrite ^(.*)$ /maintenance.html break;
        }
}

También escribí una publicación de blog sobre ese tema:
https://www.joergfelser.at/redirecting-to-a-custom-nginx-maintenance-page/

Feliz mantenimiento;)

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *