Estou procurando uma solução para automatizar um dos processos de implantação de nosso aplicativo. No início da implantação, gostaria de definir programaticamente o servidor especificado no modo de manutenção e, finalmente, após a conclusão da implantação, remover o sinalizador de modo de manutenção do servidor nginx.
Por modo de manutenção, quero dizer que o nginx deve responder com o código de resposta HTTP 503 a todas as solicitações (com possível página personalizada).
Eu sei como definir o bloco de servidor para responder com código 503 (consulte link , mas a questão é sobre como fazer isso de maneira programática e mais eficiente.
Duas opções vieram à minha mente:
Opção 1: No início do processo de implantação, grave um arquivo de manutenção na raiz do documento e verifique condicionalmente a existência do arquivo de manutenção na configuração do servidor nginx:
server {
if (-f $document_root/in_maintenance_mode) {
return 503;
}
}
Esse método contém certa sobrecarga, pois a existência do arquivo é verificada para cada solicitação. É possível verificar a existência do arquivo somente ao carregar a configuração do nginx?
Opção 2: O script de implantação substitui todo o arquivo de configuração do servidor nginx por uma versão de manutenção e o troca de volta no final da implantação. Se esse método for usado, estou preocupado com possíveis outros processos de automação, como o fantoche, que podem substituir o arquivo de configuração de manutenção.