Respondendo a todos os pedidos com uma página de manutenção sem reiniciar o servidor HTTP Apache

1

digamos que temos a seguinte imagem:

Um servidor HTTP Apache está atendendo as solicitações dos usuários. Ele encaminha todas as solicitações (ou parte de) para um servidor Tomcat usando mod_jk.

Digamos que queremos encerrar nosso aplicativo no Tomcat por duas horas para manutenção. E queremos que todos os usuários que acessam o aplicativo recebam uma mensagem sobre a manutenção (por exemplo: desculpe, estamos mantendo nossos servidores. O aplicativo estará on-line novamente às 6h).

Existe uma maneira de colocar esta página de manutenção online sem reiniciar o servidor HTTP Apache? (O servidor não pode estar reiniciando porque está servindo outros aplicativos)

Obrigado

    
por Igor Mukhin 16.09.2010 / 09:23

3 respostas

3

Configure outra instância do Tomcat que apenas exiba a página de manutenção. Execute-o em vez do seu aplicativo Tomcat.

BTW, você pode reiniciar o servidor HTTP Apache, que recicla cada solicitação de envio de thread assim que cada thread termina sua solicitação atual, portanto, nenhuma solicitação é descartada.

    
por 16.09.2010 / 09:53
1

Basta configurar o seu Apache para retornar o apropriado "Desculpe, estamos realizando algumas atividades de manutenção com um toque de vodu. Voltaremos em breve." página com a diretiva ErrorDocument do Apache. Nenhuma reinicialização é necessária - se o processo de backend não retornar algum código http OK, como 200, o Apache retornará a página do documento de erro.

    
por 16.09.2010 / 12:19
0

Sem o reinício do Apache devido ao tempo de inatividade do servidor principal? Em seguida, você pode fazer uma reinicialização normal com apachectl -k graceful com uma alteração na configuração para atender às solicitações com uma página de manutenção estática.

Mais como dito antes, você pode ter um servidor upstream que lida com todas as requisições que retornam a página de manutenção e você pode fazer um switch baseado em dns.

    
por 16.09.2010 / 10:36