Apache가 정상적으로 다시 시작되고 사용자 경험이 미치는 영향


10

graceful프로덕션 서버에서 Apache를 다시 시작해도 안전 합니까? 정상적으로 재시작하면 어떤 영향을 미치며 어떤 영향을 미칩니 까? 해로운 영향이 있습니까 (예 : 중단 시간이 짧은 경우에도)?

다음 리소스를 고려했지만 사용자에게 어떤 영향을 미칠지는 아직 확실하지 않습니다.

답변:


9

정상적 재시작을 수행 할 때 기존 연결은 정상 종료 상태로 실행되어 작업자가 종료됩니다. 새로운 작업자는 이미 새로운 연결을 처리하기 시작해야합니다.

연결 실패 또는 느린 페이지로드를 눈치 채지 말아야하지만 실제로 마스터 스레드가 구성을 다시로드하는 동안 새 연결이 잠깐 동안 표시 될 수 있습니다 (광 0.5 초 미만).

새 구성을 선택하기 위해 다시 시작하면 구성 오류가 발생하여 서버가 제대로 다시 시작되지 않을 수 있습니다.

서버가 비정상 상태 인 경우 서버를 정상적으로 다시 시작하지 못할 수 있습니다 (아마도 다시 시작하는 것을 고려하는 이유 일 수 있습니다)


1

Apache가 정적 파일을 제공하고 과 같은 앞면 역할을하지 않는 경우 매우 원활합니다. 대부분의 사용자는 눈치 채지 못하며 정상적인 사용자는 정상적인 결함으로 간주합니다. Apache는 이전 요청이 제공 될 때까지 새로운 요청을 제공하지 않으므로 모두 완료 될 때까지 기다리게됩니다. 누군가가 68KB / s로 500MB 파일을 다운로드하는 경우 다른 서비스가 진행되지 않는 오랜 시간이 걸릴 수 있습니다.

Apache가 응용 프로그램 서버를 향하고있는 경우 상황이 매우 다를 수 있습니다. 경험상, 해당 서버와의 상호 작용을위한 UX는 앱 서버가 가동,로드 및 캐시가 예열 될 때까지 매우 나쁩니다.


5
또한 /etc/init.d/httpd configtest프로덕션 서버에서 모든 종류의 아파치 재시작을 진행하기 전에 반드시 수행해야 합니다.
Citylight

실제로 — configtest를 실행하는 것이 매우 중요합니다. IIRC, 이후 버전의 Apache에서는 정상적으로 다시 시작하기 전에 암시 적 구성 테스트를 수행 할 수 있다고 생각합니다. 구성 테스트에 실패하면 다시 시작을 계속하지 않습니다.
stellarchariot

5
"아파치는 이전 요청이 제공 될 때까지 새로운 요청을 제공하지 않으므로 모든 요청이 완료 될 때까지 기다릴 것입니다. 누군가 68KB / s로 500MB 파일을 다운로드하는 경우 다른 시간이 없을 때까지 기다릴 수 있습니다 봉사하고 있습니다. " 이것은 정확하지 않습니다. 이전 세대가 마지막 요청을 완료하는 동안 구성이 즉시 다시로드되고 새 하위 프로세스가 작성되고 연결을 수락하며 요청을 처리합니다.
언약

0

위에서 언급 한 정상 매개 변수는 httpd에게 모든 하위 프로세스에 현재 작업을 완료하도록 신호를 보내 다시 시작 프로세스를 시작하도록 지시합니다. 모든 자식 프로세스 (http 요청을 처리하는 프로세스)가 작업을 완료하면 프로세스가 종료됩니다. 자식 프로세스가 현재 요청을 처리하지 않으면 즉시 닫힙니다.

반면, 모든 하위 프로세스를 즉시 종료하려고 시도하면 최종 사용자가 응답하지 않을 수 있습니다. 고객 서비스를 제공하는 하위 프로세스를 갑자기 종료하는 것보다 친숙하기 때문에 비즈니스 클래스 서버에 더 적합합니다. 많은 관리자와 특히 프로그래머는 stop을 사용하여 서버를 중지합니다. 종종 우아함이 존재한다는 것을 알지 못하기 때문입니다.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.