Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
apache:installation_configuration [2011/08/27 02:01] – import - création Anael MOBILIAapache:installation_configuration [2014/05/27 03:32] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-<style float-right>{{tag>installation configuration apache}}</style> +<style float-right>{{tag>installation configuration apache modules}}</style> 
- +<style float-left>{{:icones:package.png?nolink}}</style>
-<style float-left>{{:icones:page_web.png?nolink&70}}</style>+
 ====== Installation et configuration d'Apache ====== ====== Installation et configuration d'Apache ======
- 
 //[[:|Retour à la liste des tutoriels]]// //[[:|Retour à la liste des tutoriels]]//
 +~~CLEARFLOAT~~
 <note tip>Apache est le logiciel qui va envoyer les pages de votre site web à vos visiteurs.</note> <note tip>Apache est le logiciel qui va envoyer les pages de votre site web à vos visiteurs.</note>
 <note>**Prérequis** <note>**Prérequis**
Ligne 15: Ligne 13:
 <code bash>apt-get install apache2</code> <code bash>apt-get install apache2</code>
  
-Une fois Apache correctement installé, une page web par défaut //(It work's)// s'affiche dans le navigateur lorsque l'on tape l'url @HTTPIP@ .+Une fois Apache correctement installé, une page web par défaut //(It work's)// s'affiche dans le navigateur lorsque l'on tape l'url http://88.191.122.115 .
  
-===== grand2 ===== +\\ 
-++__But : [Sécurisation|tag:Sécurisation] basique d'[Apache|tag:Apache].__++ +===== Choix des modules (extensions) ===== 
-%%%''(mis à jour pour Ubuntu 10.04 + groupe user-web - 02/07/2010)'' + 
-%%% +==== Les modules ====
-!!!! I) Propriétaire des fichiers +
-!!! 1) Création d'un utilisateur propriétaire du site  +
-Nous allons ajouter un utilisateur système qui sera le propriétaire des fichiers du site. +
-%%%Maj : Nous attribuons le groupe www-data à cet utilisateur (simplifiera la mise en ligne de nouveaux fichiers) +
-///[bash] +
-adduser user-web --ingroup www-data +
-/// +
-!!! 2) Attribution des fichiers à l'utilisateur user-web +
-///[bash] +
-chown -R user-web:www-data /var/www/ +
-/// +
-!!! 3) Droits sur le contenu du site +
-En résumé, le système de droits de linux peut s'exprimer en 3 chiffres : les droits du propriétaire du fichier (moi), les droits des membres du groupe du propriétaire du fichier (ma famille), et les autres. +
-%%% +
-Chacun de ces chiffres est compris entre 0 et 7, décomposable ainsi :  +
-* Droit de lecture sur le fichier : 4 points +
-* Droit d'écriture sur le fichier : 2 points +
-* Droits d'exécution du fichier : 1 point +
-* Aucun droit : 0 point +
-Le chiffre correspond à la somme des valeurs assignées aux droits. +
-%%%[Doc. Ubuntu|http://doc.ubuntu-fr.org/droits|fr] +
-%%% +
-%%% +
-!! A) Dossiers +
-L'utilisateur user-web à tous les droits, et le groupe à le droit de lecture & exécution (requis pour pouvoir entrer dans le dossier) +
-///[bash] +
-find /var/www/ -type d -exec chmod 750 {} \; +
-/// +
-Pour éditer les fichiers du site, il faudra donc se connecter avec cet utilisateur en sftp (ftp over ssh) -> sftp://dedi.anael.eu :-) +
-!! B) Fichiers +
-L'utilisateur user-web peut lire & écrire les fichiers du site, le groupe à seulement un droit de lecture. +
-///[bash] +
-find /var/www/ -type f -exec chmod 640 {} \; +
-/// +
-!! C) Ecriture par le biais d'un script du site +
-Les configurations proposées ci dessus ont un avantage important : si un pirate réussi à prendre le contrôle de votre site par une quelconque faille, il sera bloqué dans ses écritures et / ou modifications de fichiers ! +
-%%% +
-Toutefois, nous avons parfois besoin d'envoyer un fichier sur notre site par un formulaire d'upload, ou de modifier un fichier à la volée. +
-%%% +
-Si vous devez écrire dans un dossier au travers du site, donnez un chmod 770 uniquement au __dossier__ concerné. +
-%%% +
-Si vous devez écrire dans un fichier au travers du site, donnez un chmod 660 uniquement au __fichier__ concerné. +
-%%%[Doc. chmod|http://fr.wikipedia.org/wiki/Permissions_Unix|fr] +
-%%% +
-!!!! II) [Modules|tag:Modules] (extensions) Apache +
-!!! 1) Les modules+
 Par défaut, Apache charge plusieurs dizaines de modules. Tous ne sont pas utiles en fonction du site web que vous souhaitez héberger. Par défaut, Apache charge plusieurs dizaines de modules. Tous ne sont pas utiles en fonction du site web que vous souhaitez héberger.
-%%% +\\ 
-Dans mon cas, à terme je souhaite héberger l'ensemble de mes sites, utilisant du htmlcss, PHP, MySQL. +Dans mon cas, à terme je souhaite héberger l'ensemble de mes sites, utilisant du HTMLCSS, PHP, MySQL. 
-%%%+
 Pour connaître tous les modules Apache chargés : Pour connaître tous les modules Apache chargés :
-///[bash+<code bash>apache2ctl -t -D  DUMP_MODULES</code> 
-apache2ctl -t -D  DUMP_MODULES +
-///+
 Voila les modules chargés par défaut sur mon installation : Voila les modules chargés par défaut sur mon installation :
-%%%La valeur entre parenthèses signifie : +\\ 
-* static : le module est intégré à Apache (et ne peut donc pas être désactivé, sauf compilation des sources :)+La valeur entre parenthèses signifie : 
-* shared : le module est rajouté à Apache, et peut donc être désactivé (voir plus loin la méthode)+  * static : le module est intégré à Apache (et ne peut donc pas être désactivé, sauf par compilation d'Apache à partir du code source
 +  * shared : le module est rajouté à Apache, et peut donc être désactivé (voir plus loin la méthode)
  
-///[apache]+<code>
 Loaded Modules: Loaded Modules:
  core_module (static)  core_module (static)
Ligne 106: Ligne 58:
  status_module (shared)  status_module (shared)
 Syntax OK Syntax OK
-/// +</code> 
-[Explications des rôles des modules.|http://httpd.apache.org/docs/2.2/mod/|en] + 
-!!! 2) Détails des rôles des modules +==== Détails des rôles des modules ==== 
-On va faire un tour un peu plus détaillé du rôle de chaque module chargé : +Voici le rôle détaillé de chaque module chargé : 
-!! A) core_module (static) +  core_module (static) 
-Module de base (coeur), toujours disponible (coeur d'Apache). +Module de base (cœur), toujours disponible (cœur d'Apache). 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/core.html|en+\\ 
-!! B) log_config_module (static) +[[http://httpd.apache.org/docs/2.2/mod/core.html|Doc. Apache]
-Permet le log des actions effectuées sur le serveur. (error.log, access.log) +  log_config_module (static) 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_log_config.html|en+Permet l'enregistrement //(log)// des actions effectuées sur le serveur. (error.log, access.log) 
-!! C) logio_module (static)+\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/mod_log_config.html|Doc. Apache]
 +  logio_module (static)
 Requiert le module log_config. Requiert le module log_config.
-%%%Permet de quantifier les données reçues / transmises pour chaque requête du serveur (1 page du site est plusieurs requêtes : le html; le css, une image...). + 
-%%%Cette valeur prend en compte les entêtes échangées (communication uniquement entre le serveur et votre navigateur, ces informations ne sont pas affichées). +Permet de quantifier les données reçues / transmises pour chaque requête du serveur (1 page du site est plusieurs requêtes : le html; le css, une image...). 
-%%%A noter que par défaut les logs (access.log) contiennent déjà la taille des données envoyées par le serveur au navigateur. (suffisant pour utiliser un script tel [webalizer|http://www.webalizer.org/|en+\\ 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_logio.html|en]) +Cette valeur prend en compte les entêtes échangées (communication uniquement entre le serveur et votre navigateur, ces informations ne sont pas affichées). 
-!! D) mpm_prefork_module (static) +\\ 
-Composant de base qui s'occupe d'écouter et répondre aux requêtes. +A noter que par défaut les logs (access.log) contiennent déjà la taille des données envoyées par le serveur au navigateur. (suffisant pour utiliser un script tel [[http://www.webalizer.org/|Webalizer]]) 
-%%%[Forums ApacheFrance - prefork ou worker|http://forums.apachefrance.com/viewtopic.php?p=38598#p38598|fr+\\ 
-%%%[Doc.wikitwist|http://fr.wikitwist.com/apache2-mpm-worker-mpm-prefork/|fr+[[http://httpd.apache.org/docs/2.2/mod/mod_logio.html|Doc. Apache]
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/worker.html|en+  mpm_prefork_module (static) 
-!! E) http_module (static)+Composant de base qui s'occupe d'écouter et répondre aux requêtes pour le serveur web
 +\\ 
 +[[http://forums.apachefrance.com/viewtopic.php?p=38598#p38598|Forums ApacheFrance - Module prefork ou worker]
 +\\ 
 +[[http://fr.wikitwist.com/apache2-mpm-worker-mpm-prefork/|Doc. wikitwist]
 +\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/worker.html|Doc. Apache]
 +  http_module (static)
 Permet la gestion du protocole http, donc le bon fonctionnement du serveur ! Permet la gestion du protocole http, donc le bon fonctionnement du serveur !
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/programs/configure.html|en+\\ 
-!! F) so_module (static) +[[http://httpd.apache.org/docs/2.2/programs/configure.html|Doc. Apache]
-Autorise le chargement de modules au lancement d'apache (les fameux shared). +  so_module (static) 
-%%%Ces modules sont des fichiers de type .so +Autorise le chargement de modules au lancement d'apache (les fameux shared). Ces modules sont des fichiers de type .so 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_so.html|en+\\ 
-!! G) alias_module (shared) +[[http://httpd.apache.org/docs/2.2/mod/mod_so.html|Doc. Apache]
-Création de répertoires virtuels : le répertoire /stats n'existe pas sur le site. En saisissant cette url, nous serrons redirigé vers /var/www/stats/ +  alias_module (shared) 
-Redirection vers une autre page du site, voir un autre site +  Création de répertoires virtuels : le répertoire /stats n'existe pas sur le site. En saisissant cette url, nous serrons redirigé vers /var/www/stats/ 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_alias.html|en+  Redirection vers une autre page du site, voir un autre site 
-!! H) auth_basic_module (shared) +\\ 
-Permet de définir des utilisateurs spécifiques autorisés à accéder à un répertoire, un fichier, ... (le plus souvent par le biais des fichiers htaccess) +[[http://httpd.apache.org/docs/2.2/mod/mod_alias.htm|Doc. Apache]
-%%%En lui seul ce module ne gère pas les listes d'utilisateurs autorisés ! +  auth_basic_module (shared) 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html|en+Permet de définir des utilisateurs spécifiques autorisés à accéder à un répertoire, un fichier, ... (le plus souvent par le biais des fichiers .htaccess) 
-!! I) authn_file_module (shared)+\\ 
 +lui seul ce module ne gère pas les listes d'utilisateurs autorisés ! 
 +\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html|Doc. Apache]
 +  authn_file_module (shared)
 Permet l'utilisation de fichiers (.htpasswd) pour authentifier les utilisateurs (cf auth_basic_module). Permet l'utilisation de fichiers (.htpasswd) pour authentifier les utilisateurs (cf auth_basic_module).
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_authn_file.html|en+\\ 
-!! J) authz_default_module (shared)+[[http://httpd.apache.org/docs/2.2/mod/mod_authn_file.html|Doc. Apache]
 +  authz_default_module (shared)
 Module de secours pour les autorisations d'accès : rejette systématiquement toutes les demandes. Module de secours pour les autorisations d'accès : rejette systématiquement toutes les demandes.
-%%%Utile en cas de non configuration d'un module de gestion des autorisations d'accès (sécurité) ! +\\ 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_authz_default.html|en+Utile en cas de non configuration d'un module de gestion des autorisations d'accès (sécurité) ! 
-!! K) authz_groupfile_module (shared)+\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/mod_authz_default.html|Doc. Apache]
 +  authz_groupfile_module (shared)
 Permet la gestion de groupes d'utilisateurs et de droits associés. Permet la gestion de groupes d'utilisateurs et de droits associés.
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_authz_groupfile.html|en+\\ 
-!! L) authz_host_module (shared) +[[http://httpd.apache.org/docs/2.2/mod/mod_authz_groupfile.html|Doc. Apache]
-Permet la gestion de droits associés à une IP ou nom (de domaine)+  authz_host_module (shared) 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html|en+Permet la gestion de droits associés à une adresse IP ou un nom de domaine. 
-!! M) authz_user_module (shared)+\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html|Doc. Apache]
 +  authz_user_module (shared)
 Permet la gestion de droits associés à un utilisateur. Permet la gestion de droits associés à un utilisateur.
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_authz_user.html|en+\\ 
-!! N) autoindex_module (shared)+[[http://httpd.apache.org/docs/2.2/mod/mod_authz_user.html|Doc. Apache]
 +  autoindex_module (shared)
 Gère le listing des fichiers / répertoires présents en cas d'absence de fichier index.* Gère le listing des fichiers / répertoires présents en cas d'absence de fichier index.*
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html|en+\\ 
-!! O) cgi_module (shared) +[[http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html|Doc. Apache]
-Autorise l'exécution de scripts CGI, et retourne le résultat. +  cgi_module (shared) 
-%%%[CGI sur Wikipedia|http://fr.wikipedia.org/wiki/Common_Gateway_Interface|fr] +Autorise l'exécution de scripts [[wp>fr:Common_Gateway_Interface|CGI]], et retourne le résultat. 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_cgi.html|en+\\ 
-!! P) deflate_module (shared)+[[http://httpd.apache.org/docs/2.2/mod/mod_cgi.html|Doc. Apache]
 +  deflate_module (shared)
 Permet la compression gzip sur le contenu avant de l'envoyer au client. Gain de bande passante / perte de processeur. Permet la compression gzip sur le contenu avant de l'envoyer au client. Gain de bande passante / perte de processeur.
-%%%S'active au cas par cas en fonction du type mime des fichiers. +\\ 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_deflate.html|en+S'active au cas par cas en fonction du type mime des fichiers. 
-!! Q) dir_module (shared) +\\ 
-Ajoute automatiquement le / à la fin de l'url demandée par le visiteur s'il s'agit d'un répertoire. (sécurité) +[[http://httpd.apache.org/docs/2.2/mod/mod_deflate.html|Doc. Apache]
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_dir.html|en+  dir_module (shared) 
-!! R) env_module (shared) +Ajoute automatiquement un "/à la fin de l'url demandée par le visiteur s'il s'agit d'un répertoire. (sécurité) 
-Modifie la configuration fournie aux scripts CGI (cf mod_cgi) et aux pages SSI (en vulgarisant des fichiers de templates spécifiques) +\\ 
-%%%[SSI - Wikipedia|http://fr.wikipedia.org/wiki/Server_Side_Includes|fr] +[[http://httpd.apache.org/docs/2.2/mod/mod_dir.html|Doc. Apache]
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_env.html|en+  env_module (shared) 
-!! S) mime_module (shared)+Modifie la configuration fournie aux scripts CGI (cf mod_cgi) et aux pages [[wp>fr:Server_Side_Includes|SSI]] (en vulgarisant des fichiers de templates spécifiques) 
 +\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/mod_env.html|Doc. Apache]
 +  mime_module (shared)
 Gestion des types mime et des informations délivrées au navigateur du visiteur des fichiers en fonction de leur extension. Gestion des types mime et des informations délivrées au navigateur du visiteur des fichiers en fonction de leur extension.
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_mime.html|en+\\ 
-!! T) negotiation_module (shared)+[[http://httpd.apache.org/docs/2.2/mod/mod_mime.html|Doc. Apache]
 +  negotiation_module (shared)
 Permet de délivrer le contenu le plus opportun à un utilisateur; par exemple dans le cas d'un site comprenant plusieurs langues. Permet de délivrer le contenu le plus opportun à un utilisateur; par exemple dans le cas d'un site comprenant plusieurs langues.
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html|en+\\ 
-!! U)  reqtimeout_module (shared)+[[http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html|Doc. Apache]
 +  reqtimeout_module (shared)
 Définit la durée au bout de laquelle une connexion est considérée comme perdue. Définit la durée au bout de laquelle une connexion est considérée comme perdue.
-%%%Installé par défaut sous ubuntu 10.04 +\\ 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_reqtimeout.html|en+[[http://httpd.apache.org/docs/2.2/mod/mod_reqtimeout.html|Doc. Apache]
-!! V) setenvif_module (shared) +  setenvif_module (shared) 
-Permet de définir des variables d'environnement liées à l'User-Agent du visiteur. +Permet de définir des variables d'environnement liées à l'[[wp>fr:User-Agent|User-Agent]] du visiteur. 
-%%%[User-Agent - Wikipedia|http://fr.wikipedia.org/wiki/User-Agent|fr+\\ 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html|en+[[http://httpd.apache.org/docs/2.2/mod/mod_setenvif|Doc. Apache]
-!! W) status_module (shared)+  status_module (shared)
 Donne des informations sur l'état du serveur Apache. Donne des informations sur l'état du serveur Apache.
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mod_status.html|en]+\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/mod_status.html|Doc. Apache]]
  
-!!! 3) Désactiver les modules+==== Désactivation des modules non requis ====
 Moins de modules seront chargés, moins de failles potentielles seront ouvertes sur notre serveur Apache, plus la sécurité sera renforcée ! Moins de modules seront chargés, moins de failles potentielles seront ouvertes sur notre serveur Apache, plus la sécurité sera renforcée !
-%%%Attention toutefois à ne pas désactiver un maximum de modules, ce qui pourrait compromettre la bonne exécution de vos sites ! + 
-%%%Il convient de ne conserver que les modules qui seront __utiles__ pour le site internet ! +Attention toutefois à ne pas désactiver un maximum de modules, ce qui pourrait compromettre la bonne exécution de vos sites ! 
-%%%J'ai choisi de désactiver ''cgi_module''"env_moduleet "setenvif_modulequi ne me servaient pas. + 
-%%%Pour ce faire, une commande simple existe : +Il convient de ne conserver que les modules qui seront **utiles** pour les sites internet ! 
-///[bash]+\\ 
 +J'ai choisi de désactiver //cgi_module////env_module// et //setenvif_module// qui ne me servaient pas. 
 +\\ 
 +Pour ce faire, une commande simple existe : 
 +<code bash>
 a2dismod cgi a2dismod cgi
 a2dismod env a2dismod env
 a2dismod setenvif a2dismod setenvif
-/// +</code> 
-Si vous ne réussissez pas à trouver le nom du module pour le désactiver, regardez son nom dans le répertoire __/etc/apache2/mods-enabled__+Si vous ne réussissez pas à trouver le nom du module pour le désactiver, regardez son nom dans le répertoire **/etc/apache2/mods-enabled**
-%%%La commande pour réactiver un module est : + 
-///[bash+<note tip>La commande pour réactiver un module est : 
-a2enmod mon_module +<code bash>a2enmod module</code></note> 
-///+
 Il faut relancer apache pour activer notre nouvelle configuration : Il faut relancer apache pour activer notre nouvelle configuration :
-///[bash+<code bash>service apache2 restart</code>
-service apache2 restart +
-///+
  
-%%% + 
-!!!! III) Configuration d'Apache +===== Configuration d'Apache ===== 
-Nous allons maintenant modifier la configuration d'Apache afin de le rendre moins verbeux, et plus adapté à notre site :) +Nous allons maintenant modifier la configuration d'Apache afin de le rendre moins verbeux, et plus adapté à notre site
-%%%Pour ce faire, il faut éditer le fichier __/etc/apache2/apache2.conf__ +\\ 
-%%%Pensez à faire un back-up du fichier avant de le modifier ! +Pour ce faire, il faut éditer le fichier **/etc/apache2/apache2.conf** 
-!!! 1) Timeout +\\ 
-Le time-out est le temps maximal qu'attends Apache lorsque le dialogue avec le navigateur du visiteur est interrompu, ou lorsqu'il reçoit une requête. +Pensez à faire une sauvegarde du fichier avant de le modifier ! 
-%%%Par défaut, le time-out est configuré à 300 secondes, ce qui est très élevé ! Nous allons le réduire à 15 secondes. + 
-///[apache]+==== Timeout ==== 
 +Le timeout est le temps maximal qu'attends Apache lorsque le dialogue avec le navigateur du visiteur est interrompu, ou lorsqu'il reçoit une requête. 
 +\\ 
 +Par défaut, le timeout est configuré à 300 secondes, ce qui est très élevé ! Nous allons le réduire à 15 secondes. 
 +<code apache>
 # #
 # Timeout: The number of seconds before receives and sends time out. # Timeout: The number of seconds before receives and sends time out.
 # #
 Timeout 15 Timeout 15
-/// +</code> 
-Sur un très gros serveur cette valeur peut-être encore réduite à 10, voir 5 secondes. De plus cela permet d'éviter certaines formes d'attaques. +Sur un très gros serveur cette valeur peut-être encore réduite à 10, voir 5 secondes. De pluscela permet d'éviter certaines formes d'attaques. 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/core.html#timeout|en+\\ 
-!!! 2) KeepAlive+[[http://httpd.apache.org/docs/2.2/mod/core.html#timeout|Doc. Apache]
 + 
 +==== KeepAlive ====
 Le KeepAlive permet de ne pas fermer la connexion entre le serveur Apache et le navigateur du client, afin de gagner du temps si le visiteur envoi une seconde requête (page web, image, css, ...). Le KeepAlive permet de ne pas fermer la connexion entre le serveur Apache et le navigateur du client, afin de gagner du temps si le visiteur envoi une seconde requête (page web, image, css, ...).
-%%%On parle alors de connexion persistante. +\\ 
-!! A) MaxKeepAliveRequests+On parle alors de connexion persistante. 
 +=== MaxKeepAliveRequests ===
 Il s'agit du nombre maximal de requêtes que peut effectuer un client durant sa connexion persistante. Il s'agit du nombre maximal de requêtes que peut effectuer un client durant sa connexion persistante.
-%%%Par défaut le nombre maximal est de 100. Ayant une machine aux capacités très réduites (128Mo de RAM, 256Mhz), je le réduit à 5. + 
-%%%Si vous avez beaucoup de visiteurs, n'hésitez pas à augmenter cette valeur (en faisant attention à la mémoire utilisée par process apache lancé !) +Par défaut le nombre maximal est de 100. Ayant une machine aux capacités très réduites (128Mo de RAM, 256Mhz), je le réduit à 5. 
-[Doc. Apache|http://httpd.apache.org/docs/2.0/mod/core.html#maxkeepaliverequests|en+ 
-!! B) KeepAliveTimeout +Si vous avez beaucoup de visiteurs, n'hésitez pas à augmenter cette valeur (en faisant attention à la mémoire utilisée par processus apache lancé !) 
-Le KeepAliveTimeout définit le temps qu'attends Apache avant de fermer la connexion persistante. +[[http://httpd.apache.org/docs/2.0/mod/core.html#maxkeepaliverequests|Doc. Apache]
-%%%Par défaut le délai est de 15 secondes, je le diminue à 10. + 
-%%%Si vous avez beaucoup de visiteurs, n'hésitez pas à réduire cette valeur jusqu'à 5, voire 1 : cela évitera de monopoliser des ressources pour rien ! +=== KeepAliveTimeout === 
-[Doc. Apache|http://httpd.apache.org/docs/2.0/mod/core.html#keepalivetimeout|en+Le KeepAliveTimeout définit le temps qu'attend Apache avant de fermer la connexion persistante. 
-///[apache]+ 
 +Par défaut le délai est de 15 secondes, je le diminue à 10. 
 + 
 +Si vous avez beaucoup de visiteurs, n'hésitez pas à réduire cette valeur jusqu'à 5, voire 1 : cela évitera de monopoliser des ressources pour rien ! 
 +[[http://httpd.apache.org/docs/2.0/mod/core.html#keepalivetimeout|Doc. Apache]
 +<code apache>
 # #
 # MaxKeepAliveRequests: The maximum number of requests to allow # MaxKeepAliveRequests: The maximum number of requests to allow
Ligne 257: Ligne 249:
 # #
 KeepAliveTimeout 10 KeepAliveTimeout 10
-/// +</code> 
-!!! 3) prefork MPM+ 
 +==== prefork MPM ====
 J'ai définit le module prefork précédemment : "Composant de base qui s'occupe d'écouter et répondre aux requêtes.". J'ai définit le module prefork précédemment : "Composant de base qui s'occupe d'écouter et répondre aux requêtes.".
-%%%Il s'agit du composant qui s'occupe d'écouter et de délivrer le contenu aux visiteurs. + 
-%%%Il est primordial de bien le configurer :-) +Il s'agit du composant qui s'occupe d'écouter et de délivrer le contenu aux visiteurs. Il est primordial de bien le configurer 
-%%%Concrètement, Apache lance des processus (appelés fils). Chacun des fils écoutera et délivrera du contenu à seul client simultanément. + 
-!! A) StartServers+Concrètement, Apache lance des processus (appelés fils). Chacun des processus fils écoutera et délivrera du contenu à un seul client simultanément. 
 +=== StartServers ===
 Il s'agit du nombre de processus fils qui sont créés au lancement du serveur Apache. Il s'agit du nombre de processus fils qui sont créés au lancement du serveur Apache.
-%%%Par défaut, la valeur est de 5. +\\ 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mpm_common.html#startservers|en+Par défaut, la valeur est de 5. 
-!! B) MinSpareServers+\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/mpm_common.html#startservers|Doc. Apache]
 +=== MinSpareServers ===
 Il s'agit du nombre minimal de processus fils disponibles pour de nouvelles requêtes. Il s'agit du nombre minimal de processus fils disponibles pour de nouvelles requêtes.
-%%%Si le nombre de processus disponibles est inférieur à cette valeur, Apache créera de nouveaux processus fils, au plus 1 par seconde. +\\ 
-%%%Par défaut la valeur est de 5. +Si le nombre de processus disponibles est inférieur à cette valeur, Apache créera de nouveaux processus fils, au plus 1 par seconde. 
-%%%Pour être cohérent, cette valeur doit-être égale à celle de StartServers . +\\ 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/prefork.html#minspareservers|en+Par défaut la valeur est de 5. 
-!! C) MaxSpareServers+\\ 
 +Pour être cohérente, cette valeur doit-être égale à celle de StartServers . 
 +\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/prefork.html#minspareservers|Doc. Apache]
 +=== MaxSpareServers ===
 Il s'agit du nombre maximal de processus fils disponibles pour de nouvelles requêtes. Il s'agit du nombre maximal de processus fils disponibles pour de nouvelles requêtes.
-%%%La valeur par défaut est de 10. +\\ 
-%%%Cette valeur n'a pas à être modifiée, sauf pour les très gros sites (configurer à 50, voire 100) +La valeur par défaut est de 10. 
-%%%Apache assure automatiquement une cohérence entre cette MinSpareServers et MaxSpareServers. +\\ 
-[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/prefork.html#maxspareservers|en+Cette valeur n'a pas à être modifiée, sauf pour les très gros sites (configurer à 50, voire 100) 
-!! D) MaxClients +\\ 
-Nombre maximum de requêtes à traiter simultanément. Les requêtes supplémentaires sont mise en attente jusqu'à ce qu'un process se libère. +Apache assure automatiquement une cohérence entre cette MinSpareServers et MaxSpareServers. 
-%%%Par défaut cette valeur est de 150. +\\ 
-%%%Cette valeur dépend du succès de vos sites, on peut monter cette valeur à 250 voire 300 (attention à la consommation de mémoire !) +[[http://httpd.apache.org/docs/2.2/mod/prefork.html#maxspareservers|Doc. Apache]
-%%%Si on souhaite augmenter cette valeur à plus de 256, il faudra définir également [ServerLimit|http://httpd.apache.org/docs/2.2/mod/mpm_common.html#serverlimit|en]. +=== MaxClients === 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients|en+Nombre maximum de requêtes à traiter simultanément. Les requêtes supplémentaires sont mise en attente jusqu'à ce qu'un processus se libère. 
-!! E) MaxRequestsPerChild+\\ 
 +Par défaut cette valeur est de 150. 
 +\\ 
 +Cette valeur dépend du succès de vos sites, on peut monter cette valeur à 250 voire 300 (attention à la consommation de mémoire !) 
 +\\ 
 +Si on souhaite augmenter cette valeur à plus de 256, il faudra définir également [[http://httpd.apache.org/docs/2.2/mod/mpm_common.html#serverlimit|ServerLimit]]. 
 +\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients|Doc. Apache]
 +=== MaxRequestsPerChild ===
 Nombre maximal de requêtes traitées par un processus avant qu'il ne s'arrête. Nombre maximal de requêtes traitées par un processus avant qu'il ne s'arrête.
-%%%Le principal intérêt de ce paramètre est en cas de fuite de mémoire sur les modules : on évite d'utiliser tout la mémoire du serveur en recyclant régulièrement le process+\\ 
-%%%La valeur par défaut est 0 (aucune limite de requêtes), je vais la configurer à 60 afin de ne pas tuer mes process trop fréquemment :) +Le principal intérêt de ce paramètre est en cas de fuite de mémoire sur les modules : on évite d'utiliser tout la mémoire du serveur en recyclant régulièrement le processus
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxrequestsperchild|en+\\ 
-///[apache]+La valeur par défaut est 0 (aucune limite de requêtes), je vais la configurer à 60 afin de ne pas tuer mes processus trop fréquemment
 +\\ 
 +[[http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxrequestsperchild|Doc. Apache]
 +<code apache>
 <IfModule mpm_prefork_module> <IfModule mpm_prefork_module>
     StartServers          5     StartServers          5
Ligne 298: Ligne 309:
     MaxRequestsPerChild  60     MaxRequestsPerChild  60
 </IfModule> </IfModule>
-/// +</code>
-!!! 4) HostnameLookups +
-Cette option permet de faire une résolution DNS des @ IP de nos visiteurs. +
-%%%C'est à dire qu'au lieu de voire apparaitre 88.191.122.115 dans mon access.log je verrais dedi.anael.eu . +
-%%%Attention ce paramétrage est lourd pour le serveurs (une requête nslookup par requête Apache !) +
-%%%Laissons le à Off (valeur par défaut) +
-%%%Si besoin, nous pourrons toujours utiliser l'outil [logresolve|http://httpd.apache.org/docs/2.2/programs/logresolve.html|en] ultérieurement (par tâche cron dans la nuit par exemple :)) +
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/core.html#hostnamelookups|en]+
  
-%%% +==== HostnameLookups ==== 
-!!!! IV) Configuration de la sécurité basique +Cette option permet de faire une résolution DNS des adresses IP de nos visiteurs
-Actuellement notre serveur Apache envoi beaucoup trop d'informations sur sa version aux clients. +\\ 
-%%%Pour résoudre cela, éditons le fichier __/etc/apache2/conf.d/security__ +C'est à dire qu'au lieu de voire apparaitre 88.191.122.115 dans mon access.log je verrais dedi.anael.ei . 
-!!! 1) Directory / +\\ 
-L'option permet une autorisation d'accès aux dossiers du système par un principe de liste blanche uniquement : On interdit tout par défaut, sauf ce qui est autorisé+Attention ce paramétrage est lourd pour le serveurs (une requête nslookup par requête Apache !) 
-%%%Cette option n'est pas encore activée par défaut, toutefois je l'active afin de me protéger au maximum contre les conséquences d'une intrusion web réussie :) +\\ 
-!!! 2) ServerTokens +Laissons le à Off (valeur par défaut). Si besoin, nous pourrons toujours utiliser l'outil [[http://httpd.apache.org/docs/2.2/programs/logresolve.html|logresolve]] ultérieurement (par tâche cron dans la nuit par exemple :)
-Configure les informations délivrées par Apache sur sa configuration au client. +\\ 
-%%%Cette option est bien évidement à mettre sur une valeur ''Prod'', renvoyant uniquement "Apache" et aucune autre indication de version ! +[[http://httpd.apache.org/docs/2.2/mod/core.html#hostnamelookups|DocApache]] 
-%%%[Doc. Apache|http://httpd.apache.org/docs/2.2/mod/core.html#servertokens|en] + 
-!!! 3) ServerSignature +==== Relancer Apache === 
-Configure l'apparition d'une ligne d'information sur le type de serveur web (Apache) et le nom de domaine lors de l'affichage de messages générés par le serveur (page d'erreur, listing de fichiers, ...). +Voila, notre serveur web est un minima adapté à nos besoins en performance et en sécurité. 
-%%%Je trouve visuellement plus propre de ne pas afficher cette information, et met donc la valeur de l'option à "Off"+ 
-%%%Les informations délivrées sur Apache sont contrôlées par l'option ServerTokens, pas de risque de fuite subtile par là :=+Afin que notre nouvelle configuration soit prise en considération, on relance Apache en douceur : 
-%%% +<code bash>service apache2 reload</code> 
-%%%Ce qui donne : +\\ 
-///[apache+Le //reload// permet de faire relire le fichier de configuration à Apache une fois que chaque processus fils à fini son travail. 
-# commentaires.... +\\ 
-<Directory /+Le //restart// stoppe immédiatement le processus fils pour relancer le serveur (interruption du service pour le client)
-        AllowOverride None +
-        Order Deny,Allow +
-        Deny from all +
-</Directory> +
-# commentaires.... +
-ServerTokens Prod +
-commentaires...+
-ServerSignature Off +
-/// +
-%%% +
-!!!! V) Relancer Apache +
-Voila, notre serveur web est un minima adapté à nos besoins en performance en sécurité. +
-%%%Afin que notre nouvelle conf soit prise en considération, on relance Apache en douceur : +
-///[bash+
-service apache2 reload +
-//+
-Le reload permet de faire relire le fichier de configuration à Apache une fois que chaque process fils à finit son travail. +
-%%%Le restart stoppe immédiatement le process fils pour relancer le serveur (interruption du service pour le client)+
  
  
Ligne 351: Ligne 337:
   * [[http://httpd.apache.org/docs/2.2/vhosts/|Site officiel d'Apache]]   * [[http://httpd.apache.org/docs/2.2/vhosts/|Site officiel d'Apache]]
   * [[http://doc.ubuntu-fr.org/apache2|Tutoriel Ubuntu]]   * [[http://doc.ubuntu-fr.org/apache2|Tutoriel Ubuntu]]
 +  * [[http://httpd.apache.org/docs/2.2/mod/|Explications des rôles des modules]]
   * [[.:|Retour à la liste des tutoriels Apache]]   * [[.:|Retour à la liste des tutoriels Apache]]
   * [[:|Retour à la liste des tutoriels]]   * [[:|Retour à la liste des tutoriels]]