Vous êtes sur la page 1sur 28

La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Administration serveur web (Apache2)

AHOUMENOU Maurice P.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Présentation
Apache 2 est le serveur HTTP le plus utilisé actuellement sur les serveurs
Web. Sa configuration et sa flexibilité font de lui un serveur incontournable.
Lorsqu’un serveur Apache reçoit des requêtes, il peut les redistribuer à des
processus fils. La configuration permet de lancer des processus de manière
anticipée et d’adapter dynamiquement ce nombre en fonction de la charge.
Apache est modulaire. Chaque module permet d’ajouter des fonctionnalités au
serveur. Le module le plus connu est celui qui gère le langage PHP,
mod_php. Chaque module s’ajoute via les fichiers de configuration, et on n’a
même pas besoin de relancer le serveur Apache avant qu’il le prenne en
compte : on lui donne juste l’ordre de relire sa configuration.
Apache peut gérer plusieurs sites Web en même temps, ayant chacun leur
nom, à l’aide des hôtes virtuels.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Modules
Le fonctionnement d'apache repose sur le moteur MPM (multi processing
module). Il existe principalement deux moteurs :
MPM prefork : c'est l'ancien moteur. Il est mono threadé donc plus lent. On
l'utilise encore car certains modules (dont le module PHP) le requièrent.
MPM worker : c'est celui que vous devriez utiliser autant que possible car il
supporte le multi threading et sera donc plus rapide.
Quelques modules de bases
Core: offre les fonctionnalités de base du serveur HTTP Apache
Mpm_common: offre une série de directives implémentées par plusieurs
modules multi-processus (MPM)
Event: est une variante du MPM worker conçue pour ne mobiliser des
threads que pour les connexions en cours de traitement
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Modules
mpm_netware: est un module multi-processus implémentant un serveur
web basé exclusivement sur les threads et optimisé pour Novell NetWare
mpmt_os2: MPM hybride multi-processus, multi-thread pour OS/2
prefork: Implémente un serveur web avec démarrage anticipé de
processus, sans thread
mpm_winnt: Module multi-processus optimisé pour Windows NT.
Worker: Module multi-processus implémentant un serveur web hybride
multi-processus multi-thread
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Installation d'apache
Sur une distribution Debian ou basée sur le noyau Debian (ubuntu), il faut
installer les paquets suivants:
apache2 : le paquet qui installe apache2,
apache2-mpm-... : un MPM pour apache2,
libapache2-mod-... : un module apache2.
En utilisant le gestionnaire de paquets, vous pouvez utiliser la commande
suivante: apt-get install apache2
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Arrêt/Relance du serveur
Le nom du service dépend de la distribution. Il est souvent intitulé apache ou
httpd; suivant la distribution lancez le service via la commande service ou
directement par son nom /etc/init.d/apache.
/etc/init.d/apache2 stop pour arrêter le serveur
/etc/init.d/apache2 start pour démarrer le serveur
/etc/init.d/apache2 restart pour redémarrer le serveur
Ou
service apache2 stop pour arrêter le serveur
service apache2 start pour démarrer le serveur
service apache2 restart pour redémarrer le serveur
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Configuration
La configuration principale est stockée dans le fichier
/etc/apache2/apache2.conf ou /etc/httpd/conf/httpd.conf. Elle contrôle les
paramètres généraux du serveur Web, les hôtes virtuels et les accès. La
configuration des différents modules est placée dans /etc/apache2/mods-
available/<nom_module>.conf.
Les modules sont présents dans /etc/httpd/modules/ ou dans
/etc/apache2/mods-available/. Par défaut la racine du serveur, celle où
sont placées les pages du site, est dans /var/www ou /srv/www. Cette
position dépend de la directive DocumentRoot dans les fichiers de
configuration.
Les sous dossiers de /etc/apache2 sont:
/etc/apache2/mods-available/
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Configuration
/etc/apache2/mods-available/
C’est dans ce répertoire que les modules apache2 sont installés, mais
ne sont pas forcément utilisés par apache2. On trouve pour chaque
module un couple de fichier (.load et .conf) qui explicitent comment
apache2 doit charger le module et sa configuration.
Exemple: installer le module libapache2-mod-...
/etc/apache2/mods-enabled/
C’est un répertoire qui contient un ensemble de liens symboliques qui
pointent vers les fichiers ".conf" et ".load" des modules qu'apache2 doit
charger à son démarrage.
a2enmod (apache2 enable module) : active un module apache2,
a2dismod (apache2 disable module) : désactive un module apache2
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Configuration
/etc/apache2/sites-available/
C’est un répertoire qui contient les fichiers indiquant chaque site hébergé
par apache2.
/etc/apache2/sites-enabled/
c’est le même principe que /etc/apache2/mod-enabled, ce répertoire
contient des liens symboliques qui pointent vers des fichiers de
/etc/apache2/sites-available.
a2ensite (apache2 enable site) : active un site,
a2dissite (apache2 disable site) : désactive un site.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Directives générales
Il n’est pas possible de lister toutes les directives du fichier httpd.conf mais
quelques-unes sont importantes.
ServerRoot : répertoire contenant les fichiers du serveur (configurations et
modules).
Listen : ports sur lesquels le serveur Apache écoute. Par défaut 80 (443
en https). On peut en spécifier plusieurs avec plusieurs directives Listen. Si
le serveur dispose de plusieurs adresses IP, on peut rajouter l’IP
au port associé : Listen 192.168.1.3:80.
User : utilisateur des processus Apache. On n’utilise jamais root, mais un
compte créé pour l’occasion, généralement Apache.
Group : idem mais pour le groupe.
ServerAdmin : adresse de courrier électronique de l’administrateur.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Directives générales
ServerName : nom d’hôte (et port) du serveur. Il ne correspond pas
forcément au nom d’hôte de la machine. Par contre il doit être valide.
ServerName www.mondomaine.org
• UseCanonicalName : si elle vaut <on>, Apache va répondre en utilisant
les informations de ServerName et Port, et pas les informations envoyées
par le client. Par exemple, un http//192.168.1.3 se transforme en
http://www.mondomaine.org.
• UserDir : nom d’un sous-répertoire ou chaque utilisateur peut placer ses
fichiers HTML personnels. Généralement public_html ou www. On y accède
avec http://www.mondomaine.org/~login/page.html.
• ErrorLog : fichier s où sont placés les logs d’erreur du serveur.
/var/log/httpd/error_log ou /var/log/apache2/error.log.
• CustomLog : fichier journal de Apache. /var/log/httpd/access_log ou
/var/log/apache2/error.log.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Directives générales
Timeout : durée pendant laquelle le serveur attend des
émissions/réceptions au cours d’une communication. Elle est réglée sur
300 secondes.
KeepAlive : définit si le serveur peut exécuter plus d’une requête par
connexion. C’est à <off> par défaut mais si on passe à <on> Apache peut
générer rapidement des processus enfants pour le soulager s’il est très
chargé.
MaxKeepAliveRequests : nombre maximum de requêtes par connexion
persistante. Une valeur élevée peut augmenter les performances du
serveur. 100 par défaut.
KeepAliveTimeout : durée pendant laquelle le serveur (généralement un
processus fils) attend après avoir servi une requête. Par défaut 15
secondes. Après les 15 secondes, la demande sera réceptionnée par le
serveur avec un Timeout.
.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Directives générales
StartServers : nombre de serveurs créés au démarrage. Par défaut 8.
Apache gérant ensuite dynamiquement le nombre de serveurs fils, ce
paramètre a peu d’importance car le nombre va baisser ou
augmenter rapidement.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Gestion des performances


MaxRequestPerChild : nombre de requêtes pouvant être exécutées par
un processus fils avant de s’arrêter.
Par défaut 4000. Ça permet une occupation mémoire plus réduite en la
libérant plus rapidement.
• MaxClients : limite du nombre total de requêtes pouvant être traitées
simultanément. Par défaut 150. La valeur limite le risque de saturation du
serveur.
• MinSpareServers / MaxSpareServers : suivant la charge de la machine,
Apache peut lancer d’autres processus serveurs pour s’adapter à la charge
actuelle. Par défaut, elles sont de 5 et 20. Ces deux valeurs
déterminent les nombres limites autorisés. Si un serveur est peu chargé
avec 15 processus, Apache en supprimera mais en gardera toujours au
moins 5. Si le serveur devient chargé avec 10 processus, Apache en
créera des supplémentaires à concurrence de 20 maximum.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Gestion des performances


• MinSpareThreads / MaxSpareThreads : chaque serveur fils peut
accepter un certain nombre de requêtes
simultanément. Pour cela il utilise les threads. Ces deux valeurs sont fixées
par défaut à 20 et 75 et le mécanisme fonctionne comme ci-dessus.
• ThreadsPerChild : nombre de threads par défaut au lancement d’un
serveur fils. Par défaut 25.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Les répertoires, alias et emplacements


Les balises <Directory chemin> et </Directory> permettent de regrouper
des directives qui ne s’appliqueront qu’au chemin (et à ses sous-
répertoires) donné. La directive Options est fortement conseillée.
<Directory /var/www/html/images>
Options +Indexes +FollowSymLinks
DirectoryIndex index.php index.html
Order allow, deny
Allow from All
</Directory>
<Directory /var/www/html/cgi-bin>
Options +ExecCGI
</Directory>
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Les répertoires, alias et emplacements


La directive Options accepte les valeurs suivantes précédées de + ou - et
séparées par des espaces :
All : toutes les options sauf MultiViews
Indexes : si jamais le répertoire ne contient pas de fichier HTML par défaut
(cf DirectoryIndex), le contenu du répertoire est affiché sous forme de listing
ExecCGI : l’exécution de scripts CGI est autorisée
FollowSymLinks : le serveur suit les liens symboliques.
La directive DirectoryIndex précise les fichiers html ou cgi par défaut lors
du chargement d’une URL. DirectoryIndex index.php index.html
La directive Allow indique quels clients seront autorisés à accéder au
répertoire.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Les répertoires, alias et emplacements


La directive LogLevel permet de choisir le niveau de verbosité des logs
parmi : debug, info, notice, warn, error, crit, alert, emerg.
CustomLog et ErrorLog permettent de choisir l'emplacement des logs.
Vous pouvez ainsi utiliser un fichier de logs par site ou le même, au choix.
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Les répertoires, alias et emplacements


La directive Alias permet de créer un raccourci entre l’arborescence
logique du site Web et un chemin du système de fichiers.
Alias /help "/usr/share/doc/html"
Dans ce cas, l’url http://www.monsite.org/help ne cherchera pas dans le
répertoire /var/www/html/help mais dans /usr/share/doc/html.
Contrairement aux balises <Directory>, les balises <Location> et
</Location> permettent d’appliquer des directives basées sur l’URL (et pas
les répertoires).
<Location /help>
Options +All -FollowSymLinks
Order deny, allow
Deny from all
Allow from .mondomaine.org
</Location>
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Hôtes virtuels
Un serveur Apache est capable de gérer plusieurs sites Web sur un même
serveur. Il existe plusieurs méthodes. La première se base sur les noms
(plusieurs sites Web pour un serveur) l’autre sur les adresses ip (une
adresse IP pour chaque site Web).
La directive NameVirtualHost spécifie l’adresse IP sur laquelle le serveur
va recevoir les requêtes d’accès aux hôtes virtuels.
Les balises <VirtualHost> et </Virtualhost> permettent de définir un hôte
virtuel
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Hôtes virtuels
<VirtualHost 192.168.1.3>
ServerName www2.mondomaine.org
ServerAdmin webmaster@www2.mondomaine.org
DocumentRoot /var/www/www2.mondomaine.org/
ErrorLog logs/www2.error.log
CustomLog logs/www2.access.log
</VirtualHost>
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Hôtes virtuels
<VirtualHost 192.168.1.3>
ServerName www.mondomaine.org
ServerAdmin webmaster@www.mondomaine.org
DocumentRoot /var/www/html
ErrorLog logs/error.log
CustomLog logs/access.log
</VirtualHost>

TP: mise en œuvre des hôtes virtuels


La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Authentification des utilisateurs


Pour qu'un répertoire ne soit pas accessible à certaines personnes, il
faut créer un fichier de mots de passe. Apache fournit
l'utilitaire htpasswd pour celà. Pour créer le fichier, il faut utiliser
l'option -c de la commande htpasswd.
# htpasswd -c /chemin/vers/fichier/passwd <nom_de_l'utilisateur>
Pour limiter l’accès d’un dossier à cet utilisateur crée, il faut alors
mettre dans le <Directory>

AuthType Basic
AuthName "Accès privé"
AuthUserFile /chemin/vers/fichier/passwd
Require user <nom_de_l'utilisateur>
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Authentification des utilisateurs


AuthType Basic indique qu'on utilise une authentification basique
AuthName indique le nom de l'identificateur, qui s'affiche lorsque le
client doit s'identifier
AuthUserFile indique le chemin vers le fichier de mot de passe
Require indique qui peut accéder au dossier.

Si vous voulez autoriser plusieurs utilisateurs, il faut


lancer htpasswd sans l’option -c pour rajouter un utilisateur. Il faudra
alors mettre, à la place de Require user :

Require valid-user
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Analyseur de logs
Un analyseur de logs permet aux administrateurs d'avoir une idée plus
précise de l'usage fait de ce service. Nous allons étudier AWStats
(Advanced Web Statistics, ou statistiques web avancées) pour
analyser les fichiers de logs d'Apache. Il s’installe en utilisant la
commande suivante: aptitude install awstats
Après l’installation, il faut ensuite procéder à la configuration en éditant
le fichier /etc/awstats/awstats.conf en changeant ces deux lignes
suivantes de votre configuration:
LogFile="/var/log/apache2/access.log"
SiteDomain="" (mettez votre domain)
Renommez le fichier en "awstats.(votre domain).conf (ex
awstats.debian.conf)
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

Analyseur de logs
Lancer le perl suivant avec votre nom de domaine à la place de debian
/usr/lib/cgi-bin/awstats.pl -config=debian -update
Ajouter ceci dans apache2.conf

Alias /awstats-icon/ /usr/share/awstats/icon/


<Directory /usr/share/awstats/icon>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Redémarrer apache2
/etc/init.d/apache2 restart
Accédez à votre page en faisant:
http://debian/cgi-bin/awstats.pl?config=debian
La partie de l'image av ec l'ID de relation rId14 n'a pas été trouv é dans le fichier.

FIN!
Choix des serveurs IIS
Serveur DNS
domaine africatourism.bj
Déployer un site web sur le domaine
Configurer SSL pour sécuriser le domaine

Vous aimerez peut-être aussi