다음과 같은 MPM Prefork 지시문의 값을 찾을 수 없습니다.MaxRequestWorkers/최대 예비 스레드내 구성 파일에 등이 있습니다. 명령줄에서 이러한 값을 나열하는 방법이 있습니까?
-bash-4.2# httpd -v
Server version: Apache/2.4.23 (Amazon)
-bash-4.2# httpd -V
Server version: Apache/2.4.23 (Amazon)
Server built: Jul 29 2016 21:42:17
Server's Module Magic Number: 20120211:61
Server loaded: APR 1.5.1, APR-UTIL 1.4.1
Compiled using: APR 1.5.1, APR-UTIL 1.4.1
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="/var/run/httpd/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
추신: SuperUser에도 게시했습니다. 어느 곳이 맞는지 잘 모르겠습니다.
답변1
- 프리포크는 스레드가 아니기 때문에 MaxSpareThreads를 찾을 수 없습니다.
**MaxSpareServers**
- 명령줄에서가 아니라 다음을 수행해야 합니다.기본 구성 파일을 "cat"으로 지정, 또는 배포판이 배치한 위치(httpd.conf, apache.conf 또는 mpm.conf?)
- 당신이 가지고 있다면mod_info넌 할 수 있어 "곱슬 곱슬하다" 서버에서 해당 정보를 검색하고 설정을 구문 분석/읽는 것이 아마도 명령줄에서 해당 정보를 얻는 가장 가까운 방법일 것입니다. 거기에는 다음과 같은 섹션이 표시됩니다.모듈 이름: prefork.c그리고 문자 메시지 뒤에는 "현재 구성:"는 귀하의 실제mpm 설정. (참고: mod_info는 실제로 전체 구성을 공개하므로 서버에 액세스하는 모든 사람에게 공개적으로 제공되어서는 안 됩니다.)
프리포크 구성 방법/구성 방법에 대한 추가 정보가 필요한 경우 다음에서 확인할 수 있습니다.mpm 프리포크에 대한 공식 문서
참고: 어쨌든 나는 프리포크를 권장하지 않습니다. 이벤트에 참여하고 mod_php 때문이라면 php-fpm을 선호하여 버리세요.
답변2
여기에 제안된 다른 접근 방식에 대한 대안으로 내 Apache 배포판에는 /usr/share/doc/httpd-2.4.54
다양한 설정의 템플릿과 파일이 포함된 디렉터리가 있습니다. 그 중,httpd-default.conf
다음과 같이 주장한다.Apache HTTP Server의 기본 설정을 반영합니다..
나는 그것을 증명하지는 않았지만 여기에 있는 다른 파일인 httpd-mpm.conf
. 이 파일에는 다음 서문과 함께 MPM과 관련된 설정 섹션이 포함되어 있습니다.
# Only one of the below sections will be relevant on your
# installed httpd. Use "apachectl -l" to find out the
# active mpm.
분명히 -l
위는 오타입니다. 제 경우에는 다음을 실행합니다 apachectl -V
.
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
httpd-mpm.conf
그래서 나는 관련된 섹션을 참조합니다 .프리포크 MPM, 포함하는:
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of connections a server process serves
# before terminating
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>```