A melhor maneira de derrubar um sistema com uma mensagem de “manutenção”?

3

Qual é a melhor maneira de desativar uma configuração do apache2 / tomcat6 para manutenção? Especificamente, o apache2 pode ficar em execução, mas o tomcat precisa ser reiniciado para realizar várias tarefas. Meu pensamento inicial é alterar o diretório raiz na entrada httpd.conf VirtualHost para apontar para um novo local e, em seguida, emitir um comando force-reload para direcionar o tráfego para longe do aplicativo tomcat real. Depois de algum tempo, eu executo a manutenção do tomcat, alterno a entrada VirtualHost e force-reload para começar a direcionar o tráfego de volta.

Existe uma maneira melhor de fazer isso? Eu estou olhando para começar a trabalhar em uma aplicação web bastante extensa, e meu procedimento de implantação agora envolve desligar tudo e trazer tudo de volta. Existe uma maneira melhor de fazer isso do que o que eu propus?

    
por Stefan Kendall 25.05.2010 / 20:27

2 respostas

2

Ou é o que você descreveu acima ou se você tem um balanceador de carga e um segundo servidor em algum lugar você pode redirecionar o tráfego no LB para apontar para o servidor sobressalente (servindo uma estática "Ei, estamos fazendo manutenção! Volte mais tarde! "Página).

A vantagem de manipular a janela de manutenção em um balanceador de carga (ou trocar o segundo servidor por IP) é que você pode testar sua pilha Tomcat de ponta a ponta antes de apontar tráfego ao vivo novamente, o que evita surpresas desagradáveis um pouco de configuração do ambiente de desenvolvimento entrou em produção.

    
por 25.05.2010 / 21:14
1

Eu vejo em algum lugar uma reescrita para fazer isso:

ErrorDocument 503 "Our website is temporarily closed for maintenance. It should reopen by..."
RewriteEngine On
# TO ALLOW YOURSELF TO ACCESS THE SITE NORMALLY, SET THE NEXT LINE TO YOUR IP ADDRESS.
RewriteCond %{REMOTE_ADDR} !^111\.222\.333\.444$
RewriteRule .* - [R=503,L]

O IP 111.222.333.444 é o seu endereço IP para acessar o seu site. Todos os outros usuários serão redirecionados para o 503 ErrorDocument. Coloque tudo isso em um .htaccess na raiz do seu virtualhost.

Não sei se funciona com o tomcat, mas funciona com páginas estáticas ou PHP. Claro, o Apache deve ser configurado para ler o arquivo .htaccess

    
por 26.05.2010 / 00:02