웹사이트 방문자에게 영향을 주지 않고 httpd, redis 및 php-fpm을 정상적으로 다시 시작할 수 있습니까?

웹사이트 방문자에게 영향을 주지 않고 httpd, redis 및 php-fpm을 정상적으로 다시 시작할 수 있습니까?

저는 Apache httpd, redis 및 php-fpm의 조합을 통해 상당히 리소스가 많은 Magento 기반 사이트를 운영하고 있습니다.

핵심 PHP 파일을 변경할 때 Magento를 망칠 수 있는(그리고 실제로) 이전 코드가 캐시되지 않도록 위 서비스를 다시 시작해야 합니다.

과거에 방금 httpd를 사용했을 때는 service httpd graceful사이트 방문자에게 영향을 주지 않고 정상적으로 다시 시작하기 위해 실행했지만 이제는 여러 서비스를 다시 시작하고 redis를 플러시해야 하므로 웹 사이트를 몇 초 동안 사용할 수 없습니다.

이것을 피할 수 있습니까?

답변1

아파치를 보면선적 서류 비치Apache가 이를 위해 신호를 사용하는 것을 볼 수 있습니다 USR1. 따라서 이는 사용자 정의 루틴입니다. 유사한 옵션을 제공하는지 여부를 확인하려면 다른 구성 요소의 설명서를 확인해야 합니다. php-fpm에 대한 한 번의 적중은 예를 들어다른 사람을 방해하지 않고 PHP-FPM 풀 중 하나를 다시 로드할 수 있습니까?.

구성 요소 중 하나에 해당 옵션이 없으면 단일 서버/사이트에서는 해당 옵션을 수행할 수 없습니다. 사용자를 새 버전으로 리디렉션하고 일정 시간이 지나면 이전 버전을 끌 수 있는 일종의 클러스터나 밸런서가 필요합니다. 대안은 트래픽이 적은 시간(예: 밤 동안)에 다시 시작하도록 예약하는 것입니다.

관련 정보