O impacto do Apache reinicia normalmente e a experiência do usuário

10

É seguro executar uma gracefulreinicialização do Apache em um servidor de produção? Que efeitos causará um reinício normal e qual seria o impacto (se houver)? Haverá impactos negativos (por exemplo, tempo de inatividade, mesmo que por pouco tempo)?

Eu considerei os seguintes recursos, mas ainda não está claro quais serão os impactos nos usuários:

stellarchariot
fonte

Respostas:

9

Ao executar uma reinicialização normal, as conexões existentes devem ser executadas até a conclusão normal, quando seus funcionários serão encerrados. Novos trabalhadores já devem ser iniciados para lidar com novas conexões.

Você não deve observar falhas de conexão ou carregamento lento de páginas, mas, na prática, poderá ver novas conexões enfileirando-se brevemente enquanto a configuração é recarregada pelo encadeamento mestre (o meu leva menos de meio segundo)

Se você estiver reiniciando para pegar uma nova configuração, existe o risco de haver um erro de configuração que pode impedir que o servidor seja reiniciado corretamente.

Se o servidor estiver em um estado anormal, poderá falhar ao reiniciar normalmente (talvez seja por isso que você esteja considerando uma reinicialização normal)

Complicado
fonte
1

Se o Apache estiver servindo arquivos estáticos e não estiver atuando como a frente de algo como um , é bem tranquilo. A maioria dos usuários nem percebe, e aqueles que o consideram uma falha normal. O Apache não atenderá novas solicitações até que as antigas sejam atendidas; portanto, você estará esperando até que todas elas terminem. Se alguém estiver baixando um arquivo de 500 MB a 68 KB / s, você poderá aguardar MUITO TEMPO, durante o qual nenhuma outra veiculação está acontecendo.

Se o Apache estiver enfrentando um servidor de aplicativos, a situação poderá ser muito diferente. Por experiência, o UX para interagir com esse servidor ficará muito ruim até que o servidor de aplicativos esteja ativo, carregado e os caches sejam aquecidos.

sysadmin1138
fonte
5
Além disso, é MUITO importante fazer isso /etc/init.d/httpd configtestantes de prosseguir com qualquer tipo de reinício do apache em um servidor de produção.
Sree
De fato - é muito importante executar um configtest. IIRC, acho que com versões posteriores do Apache pode executar um configtest implícito antes de uma reinicialização normal e, se falhar no configtest, não continuará com a reinicialização.
Stellarchariot #
5
"O Apache não atenderá novas solicitações até que as antigas sejam atendidas, portanto, você estará aguardando até que todas terminem. Se alguém estiver baixando um arquivo de 500MB a 68KB / s, poderá esperar muito tempo, durante o qual nenhum outro servir está acontecendo ". Isto não é exato. A configuração é recarregada imediatamente e novos processos filhos são criados, aceitam conexões e processam solicitações enquanto a geração anterior termina seus últimos pedidos.
Covener
0

O parâmetro gracioso acima mencionado informa ao httpd para iniciar o processo de reinicialização, sinalizando primeiro todos os seus processos filhos para concluir suas tarefas atuais. Depois que todos os processos filhos (aqueles que estão atendendo solicitações http) tiverem concluído suas tarefas, eles serão fechados; se algum processo filho não estiver atendendo solicitações no momento, ele será fechado imediatamente.

Por outro lado, interrompa as tentativas de finalizar todos os processos filhos imediatamente, o que poderia deixar os usuários finais travados. Minha preferência é graciosa - uma escolha melhor para o servidor de classe empresarial - porque é mais amigável do que encerrar abruptamente processos filhos que estão atendendo a clientes. Muitos administradores e especialmente os programadores usam o stop para interromper o servidor, geralmente porque não sabem que o gracioso existe.

Link: https://www.godaddy.com/garage/tech/config/how-to-restart-apache-without-rebooting-your-centos-linux-server/ Link

Somdip Dey
fonte