Apache 작업 모드
(권장 튜토리얼: apache from Entry to proficiency)
prefork 작동 원리
별도의 제어 프로세스(상위 프로세스)가 하위 프로세스 생성을 담당합니다. 요청을 듣고 응답합니다.
Apache는 항상 다가오는 요청을 위해 예비 또는 유휴 하위 프로세스를 유지하려고 합니다. 이런 방식으로 클라이언트는 서비스를 받기 전에 하위 프로세스가 생성될 때까지 기다릴 필요가 없습니다. Unix 시스템에서 상위 프로세스는 일반적으로 포트 80을 바인딩하기 위해 루트로 실행되는 반면, Apache에서 생성된 하위 프로세스는 일반적으로 권한이 낮은 사용자로 실행됩니다.
사용자 및 그룹 지시어는 하위 프로세스에 대한 낮은 권한의 사용자를 구성하는 데 사용됩니다. 하위 프로세스를 실행하는 사용자는 자신이 제공하는 콘텐츠에 대한 읽기 권한이 있어야 하지만, 서비스 콘텐츠 외부의 다른 리소스에 대해서는 가능한 한 적은 권한을 가지고 있어야 합니다.
작업자가 작동하는 방식
각 프로세스가 가질 수 있는 스레드 수는 고정되어 있습니다. 서버는 로드에 따라 프로세스 수를 늘리거나 줄입니다.
별도의 제어 프로세스(상위 프로세스)가 하위 프로세스 설정을 담당합니다. 각 하위 프로세스는 ThreadsPerChild 수의 서비스 스레드와 수신 스레드를 설정할 수 있습니다. 이 스레드는 액세스 요청을 수신하고 처리 및 응답을 위해 서비스 스레드에 전달합니다. Apache는 항상 서비스 스레드의 예비 또는 유휴 풀을 유지하려고 시도합니다.
이런 방식으로 클라이언트는 처리되기 전에 새 스레드나 프로세스가 설정될 때까지 기다릴 필요가 없습니다. Unix에서는 포트 80을 바인딩하기 위해 일반적으로 상위 프로세스가 루트로 시작됩니다. 이후 Apache는 더 낮은 권한을 가진 사용자로 하위 프로세스와 스레드를 생성합니다. User 및 Group 지시문은 Apache 하위 프로세스의 권한을 구성하는 데 사용됩니다. 하위 프로세스는 자신이 제공하는 콘텐츠에 대한 읽기 액세스 권한을 가져야 하지만 가능한 한 적은 권한을 부여해야 합니다.
또한 suexec를 사용하지 않는 한 이 지침에 의해 구성된 권한은 CGI 스크립트에 상속됩니다.
Event MPM
이것은 Apache의 최신 작업 모드입니다. 작업자 모드와 매우 유사합니다. 차이점은 이벤트 작업 시 연결 유지 중에 스레드 리소스가 낭비되는 문제를 해결한다는 것입니다. mode에는 이러한 연결 유지 유형 스레드를 관리하는 데 사용되는 특수 스레드가 있습니다. 실제 요청이 오면 요청이 서버 스레드로 전달되고 실행이 완료된 후 해제가 허용됩니다.
이를 통해 동시성이 높은 시나리오에서 요청 처리가 향상됩니다. Unix 시스템의 apache2.4 버전은 이 모드를 사용합니다.
위 내용은 아파치 작업 모드 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!