Anda di halaman 1dari 3

Atelier 2

Configuration générale d’Apache

Objectifs :

 Modifier les options de démarrage d’Apache


 Choisir et configurer son MPM
 Configurer et vérifier l’affectation des interfaces réseau et ports d’écoute
 Mesurer les performances du serveur avec ab.

Séquence 1 :

Dans cette séquence on désire identifier les différents fichiers intervenants dans le
fonctionnement d’Apache, processus de démarrage, gestion des journaux, fichier de PID et
applications tierces.

1- En utilisant les commandes du système (RedHat, Fedora ou CentOS) vérifiez si le service


« httpd » est activé pour le démarrage automatique dans les runlevels 3 et 5 et s’il est
actuellement en cours d’exécution ou pas.
# chkconfig --list httpd
httpd 0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt
# service httpd
Syntaxe : httpd {start|stop|restart|condrestart|try-restart|force-
reload|reload|status| fullstatus|graceful|help|configtest}
# /etc/init.d/httpd
Syntaxe : httpd {start|stop|restart|condrestart|try-restart|force-
reload|reload|status| fullstatus|graceful|help|configtest}
# service httpd status
httpd est arrêté
2‐ Démarrez  le  service  « httpd »  et  identifiez  tous  les  ports  réseaux  occupés  par  lui  ainsi  que 
l’identité de son exécutable. 
 
# service httpd start
# service httpd status
httpd (pid 3151) en cours d'exécution...
# cat /var/run/httpd/httpd.pid
3151
# netstat -ntaupe | grep http
Tcp 0 0 :::80 :::* LISTEN 0 21810 3151/httpd
Tcp 0 0 :::443 :::* LISTEN 0 21818 3151/httpd
# which httpd
/usr/sbin/httpd
# ls /usr/sbin/httpd*
/usr/sbin/httpd /usr/sbin/httpd.event /usr/sbin/httpd.worker
 
3‐ Modifiez le fichier /etc/sysconfig/httpd en dé‐commentant la ligne suivante : 
HTTPD=/usr/sbin/httpd.worker
Puis redémarrez le service et vérifiez que c’est bien ce nouvel exécutable qui démarre et non plus 
l’ancien : 
 
# service httpd restart
Arrêt de httpd : [ OK ]
Démarrage de httpd : httpd.worker: Syntax error on line 223 of
/etc/httpd/conf/httpd.conf: Syntax error on line 9 of
/etc/httpd/conf.d/php.conf: Cannot load /etc/httpd/modules/libphp5-
zts.so into server: /etc/httpd/modules/libphp5-zts.so: cannot open
shared object file: No such file or directory [ÉCHOUÉ]
 
Vérifiez au niveau du log si une information concernant l’erreur est disponible : 
# tail –f /var/log/httpd/error_log 
Le module PHP étant incompatible avec le MPM worker, nous allons le désactiver. 
# cp /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.old 
 
Redémarrez Apache et refaites les vérifications nécessaires comme précédemment. 
 
4‐ Nous allons maintenant observer puis modifier le comportement des MPMs prefork et worker 
 
# ps axfo ppid,pid,user,command | grep httpd
1 3236 root /usr/sbin/httpd.worker
3236 3238 apache \_ /usr/sbin/httpd.worker
3236 3240 apache \_ /usr/sbin/httpd.worker
3236 3268 apache \_ /usr/sbin/httpd.worker
3236 3296 apache \_ /usr/sbin/httpd.worker
# pstree -ph 3236
httpd.worker(3236)─┬─httpd.worker(3238)
├─httpd.worker(3240)─┬─{httpd.worker}(3298)
│ ├─{httpd.worker}(3299)
│ ├─{httpd.worker}(3300)
│ ├─{httpd.worker}(3301)
│ ├─{httpd.worker}(3302)
│ ├─{httpd.worker}(3303)
...

Modifiez les directives StartServers, MaxSpareThreads et ThreadsPerChild avec les valeurs 
respectives suivantes : 2, 100 et 50. Redémarrez Apache et faites les vérifications nécessaires. 
5‐ Modifiez le fichier /etc/sysconfig/httpd en commentant la ligne suivante : 
#HTTPD=/usr/sbin/httpd.worker
 
Modifiez la directive StartServers à la valeur 50 puis redémarrez Apache et observez le nombre 
de  processus.  Refaites  plusieurs  fois  les  commandes  ps  et  pstree.  Que  remarquez‐vous  et 
pourquoi ? 
 
# ps axfo ppid,pid,user,command | grep httpd
1 3665 root /usr/sbin/httpd
3665 3667 apache \_ /usr/sbin/httpd
3665 3673 apache \_ [httpd] <defunct>
3665 3674 apache \_ /usr/sbin/httpd
6‐ Pour chaque MPM, nous mesurons sa performance et l'utilisation de mémoire comme suit : 

D’abord nous testons le MPM en  envoyant 1000 requêtes avec 12 utilisateurs simultanés. Ceci 
donne au MPM la chance de monter en charge quelles que soient les ressources nécessaires. 
Ceci est fait avec l'outil ab d’Apache, Prenez note des ressources du système d’abord : 
# uptime 
# free ‐m  
# ab -n 1000 -c 12 http://localhost
# ab -k -n 1000 -c 5 http://localhost

Pour garder les résultats dans des fichiers au format cvs utilisez l’option –e ou bien dans un 
format utilisable sous Excel ou gnuplot utilisez l’option –g. 
# ab -k -n 1000 -c 2 -e apache2r1.cvs http://localhost
# ab -k -n 1000 -c 2 -g apache2r2.txt http://localhost 

7‐ Ensuite, nous envoyons 50.000 requêtes en tout avec 12 utilisateurs simultanés. 

# ab -k -n 50000 -c 12 -e apache2r3.cvs http://localhost


# ab -k -n 50000 -c 12 -g apache2r4.txt http://localhost 

Mesurez l'utilisation de mémoire de système actuelle avec l'outil 'free'. 

Enfin consultez les différentes données collectez et faites une analyse. 

Refaites les mêmes tests en mettant la directive KeepAlive à on et en modifiant la valeur de la 
directive MaxRequestsperChild. 

Anda mungkin juga menyukai