En regardant le fichier de configuration d'Apache, je vois que Prefork et Worker MPM sont définis. Quelle est la différence et lequel Apache utilise-t-il ?
Réponses
Trop de publicités?Il est facile de passer de prefork à worker mpm dans Apache 2.4 sur RHEL7.
Vérifiez le type de MPM en exécutant
sudo httpd -V
Server version: Apache/2.4.6 (Red Hat Enterprise Linux)
Server built: Jul 26 2017 04:45:44
Server's Module Magic Number: 20120211:24
Server loaded: APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
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="/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"
Maintenant, pour changer MPM, éditez le fichier suivant et décommentez le MPM requis.
/etc/httpd/conf.modules.d/00-mpm.conf
# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines:
# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
#LoadModule mpm_event_module modules/mod_mpm_event.so
Apache a défini 2 types de MPM (Multi-Processing Modules) :
1 : Préfourchette 2 : Travailleur
Par défaut, Apache est configuré en mode preforked, c'est-à-dire un serveur web pré-forking non threadé. Cela signifie que chaque processus enfant Apache contient un seul thread et traite une seule requête à la fois. De ce fait, il consomme plus de ressources.
Apache dispose également du Worker MPM qui transforme Apache en un serveur web multi-processus et multi-threads. Worker MPM utilise plusieurs processus enfants avec de nombreux threads chacun.
- Réponses précédentes
- Plus de réponses