Posso reiniciar httpd, redis e php-fpm sem afetar os visitantes do meu site?

Posso reiniciar httpd, redis e php-fpm sem afetar os visitantes do meu site?

Estou executando um site baseado em Magento com muitos recursos por meio de uma combinação de Apache httpd, redis e php-fpm.

Quando faço alterações nos principais arquivos PHP, é necessário reiniciar os serviços acima para garantir que nenhum código antigo seja armazenado em cache, o que pode (e faz) estragar o Magento.

No passado, quando eu apenas usava o httpd, simplesmente corri service httpd gracefulpara reiniciar normalmente sem afetar os visitantes do site, mas agora que preciso reiniciar vários serviços (e liberar o redis), o site fica indisponível por alguns segundos.

É possível evitar isso?

Responder1

Se você olhar para o Apachedocumentaçãovocê verá que o Apache usa o USR1sinal para isso. Como tal, é uma rotina personalizada. Você terá que verificar a documentação dos outros componentes para ver se eles oferecem ou não opções semelhantes. Um hit para php-fpm é, por exemploPodemos recarregar um dos pools PHP-FPM sem incomodar os outros?.

Se um dos componentes não tiver essa opção você não conseguirá fazê-lo com um único servidor/site. Você precisaria de algum tipo de cluster ou balanceador que permitiria redirecionar seus usuários para a nova versão e desativar a versão antiga depois de algum tempo. Uma alternativa pode ser programar a reinicialização para algum horário de baixo tráfego (por exemplo, durante a noite).

informação relacionada