[server] 아파치가 프리 포크 또는 작업자로 실행 중인지 어떻게 알 수 있습니까?

아파치가 프리 포크 또는 작업자로 실행 중인지 (또는 실행하도록 구성되어 있는지) 어떻게 알 수 있습니까?



답변

MPM은 컴파일 타임에 구성됩니다. 나중에 알아내는 한 가지 방법은 모듈로 컴파일 된 목록을 작성하는 것입니다. 이 목록에는 선택한 MPM이 포함됩니다. -l 플래그를 사용하여 아파치 바이너리를 실행하여 목록을 작성할 수 있습니다.

andreas@halleck:~$ apache2 -l
Compiled in modules:
 core.c
 mod_log_config.c
 mod_logio.c
 worker.c
 http_core.c
 mod_so.c
andreas@halleck:~$

여기서 worker.c 모듈을 찾게되므로 worker MPM을 실행하고 있습니다.


답변

Series8217과 Andol의 답변이 모두 틀립니다.

문제는 Apache가 prefork 또는 worker를 실행 중인지 확인하는 방법이었습니다 . 다른 답변에서 제공하는 조언 은 현재 기본 또는 다른 선택이 사용되는 경우가 아니라 기본 MPM이 무엇인지 알려줍니다 (컴파일 된 모듈 기반).

경우 httpd -V쇼 prefork의 그 단지 수단의 prefork의는 컴파일 된 기본 MPM입니다. 이 프로세스에 표시된대로 Apache 구성 파일 설정을 변경하여이를 대체 할 수 있습니다.

  1. 구성 파일 편집 (예 : /etc/sysconfig/httpdCentOS / RedHat)
  2. 이 줄을 추가하거나 주석 해제하십시오. HTTPD=/usr/sbin/httpd.worker
  3. 아파치 다시 시작

이 프로세스를 사용하여 실제로 실행중인 MPM을 표시 할 수 있습니다.

  1. Apache mod_info 활성화
  2. 일반적으로 mod_info URL을 쿼리하십시오. curl localhost/server-info
  3. “서버 설정”섹션에 “MPM 이름 : 작업자”가 표시됩니다.
  4. httpd -V다시 실행 -작업자가 아닌 프리 포크가 계속 표시됩니다.

결론 :

  • httpd -V 실제로 사용중인 옵션이 아닌 기본 옵션을 표시합니다.

많은 웹 사이트에는 httpd -VApache가 prefork 또는 worker를 실행 중인지 확인 하는 데 사용되는 답변이 있습니다 . 그들은 모두 틀렸다. 위 절차를 시도하여 스스로 확인하십시오.


답변

우분투 14.04에서

a2query -M

지시 event, prefork,worker

당신은에 대한 기호 링크 추가하여 변경할 수 있습니다 mpm_<chosen>에서 mods-availablemods-enabled의를 /etc/apache2.

한 번에 하나만 허용됩니다.


답변

RedHat 및 파생 제품에서 시작 top하거나 ps auxhttpd 프로세스 이름을 확인하십시오.

  • httpd Apache가 prefork로 실행되고 있음을 의미
  • httpd.worker 작업자로 실행되고 있음을 의미

답변

RHEL / Fedora / etc에서을 실행하십시오 httpd -V. 다음과 같은 출력이 제공됩니다.

Server version: Apache/2.2.21 (Unix)
     ...
Architecture:   64-bit
Server MPM:     Prefork
     ...

여기서 ‘Server MPM’은 ‘Prefork’이므로 서버에서 prefork MPM을 실행하고 있습니다.


답변

크리스 존슨이 맞습니다. httpd.conf =>로 이동하여 다음 줄을 추가하십시오.

<Location /server-info>
SetHandler server-info
</Location>

아파치를 다시 시작하십시오 : /etc/init.d/httpd restart. 그런 다음 브라우저로 localhost / server-info 에 액세스 하고 MPM 이름 섹션을보십시오 .


답변

다음은 사용중인 MPM을 결정하는 데 신뢰할 수있는 다른 방법입니다. 에 다음을 추가하십시오 httpd.conf.

<IfModule prefork.c>
    Header append X-MPM prefork
</IfModule>
<IfModule worker.c>
    Header append X-MPM worker
</IfModule>

그런 다음를 사용하여 헤더를 확인하십시오 curl -I localhost | grep X-MPM.