A página 503 padrão que é mostrada enquanto uma implantação está em andamento no Openshift não é muito “amigável”. Eu queria mudar essa página do meu aplicativo DIY e a solução que encontrei é iniciar um servidor temporário que servirá a página 503 personalizada, enquanto a implantação está em andamento.
Python para o resgate!
Para manter as coisas simples, vou usar o servidor http base do python para servir uma página html estática. Este servidor web python será iniciado após o processo nginx ser interrompido e será encerrado no final da implantação, logo antes de o servidor nginx ser iniciado novamente.
Uso
- No meu
stop
gancho de ação, vou iniciar o servidor da web python logo depois de parar o nginx:
# stop nginx
echo "Starting maintenance web server."
nohup python ${OPENSHIFT_RUNTIME_DIR}/maintenance/maintenance.py > /tmp/nohup.out 2>&1&
echo $! > ${OPENSHIFT_RUN_DIR}/maintenance.pid
- No meu
start
gancho de ação, vou parar o servidor da web python antes de iniciar o nginx:
echo "Stopping maintenance web server."
kill -9 `cat ${OPENSHIFT_RUN_DIR}/maintenance.pid`
# start nginx
Então, basicamente, quando a implementação começar, o nginx será interrompido e o servidor da web do python será iniciado e quando a implementação for concluída, o servidor da web do python será interrompido e o nginx será iniciado.
Você pode ver os arquivos de amostra aqui