Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
apache:installation_configuration [2011/08/27 02:04] – Anael MOBILIA | apache:installation_configuration [2014/05/27 03:32] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | <style float-right> | + | <style float-right> |
- | + | <style float-left> | |
- | <style float-left> | + | |
====== Installation et configuration d' | ====== Installation et configuration d' | ||
- | |||
// | // | ||
+ | ~~CLEARFLOAT~~ | ||
<note tip> | <note tip> | ||
< | < | ||
Ligne 15: | Ligne 13: | ||
<code bash> | <code bash> | ||
- | Une fois Apache correctement installé, une page web par défaut //(It work' | + | Une fois Apache correctement installé, une page web par défaut //(It work' |
- | ===== grand2 | + | \\ |
+ | ===== Choix des modules (extensions) | ||
- | !!!! II) [Modules|tag: | + | ==== Les modules |
- | !!! 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' | + | Dans mon cas, à terme je souhaite héberger l' |
- | %%% | + | |
Pour connaître tous les modules Apache chargés : | Pour connaître tous les modules Apache chargés : | ||
- | ///[bash] | + | < |
- | 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é, | + | 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é, |
+ | * shared : le module est rajouté à Apache, et peut donc être désactivé (voir plus loin la méthode) | ||
- | ///[apache] | + | < |
Loaded Modules: | Loaded Modules: | ||
| | ||
Ligne 60: | Ligne 58: | ||
| | ||
Syntax OK | Syntax OK | ||
- | /// | + | </code> |
- | [Explications des rôles des modules.|http:// | + | |
- | !!! 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é | + | Voici le rôle détaillé de chaque module chargé : |
- | !! A) core_module (static) | + | |
- | Module de base (coeur), toujours disponible (coeur d' | + | Module de base (cœur), toujours disponible (cœur d' |
- | %%%[Doc. Apache|http:// | + | \\ |
- | !! B) log_config_module (static) | + | [[http:// |
- | Permet | + | |
- | %%%[Doc. Apache|http:// | + | Permet |
- | !! C) logio_module (static) | + | \\ |
+ | [[http:// | ||
+ | | ||
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:// | + | \\ |
- | %%%[Doc. Apache|http:// | + | 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' | + | 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:// |
- | %%%[Forums ApacheFrance - prefork ou worker|http:// | + | \\ |
- | %%%[Doc.wikitwist|http:// | + | [[http:// |
- | %%%[Doc. Apache|http:// | + | |
- | !! E) http_module (static) | + | Composant de base qui s' |
+ | \\ | ||
+ | [[http:// | ||
+ | \\ | ||
+ | [[http:// | ||
+ | \\ | ||
+ | [[http:// | ||
+ | | ||
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:// | + | \\ |
- | !! F) so_module (static) | + | [[http:// |
- | Autorise le chargement de modules au lancement d' | + | |
- | %%%Ces modules sont des fichiers de type .so | + | Autorise le chargement de modules au lancement d' |
- | %%%[Doc. Apache|http:// | + | \\ |
- | !! G) alias_module (shared) | + | [[http:// |
- | * Création de répertoires virtuels : le répertoire /stats n' | + | |
- | * Redirection vers une autre page du site, voir un autre site | + | |
- | %%%[Doc. Apache|http:// | + | |
- | !! H) auth_basic_module (shared) | + | \\ |
- | Permet de définir des utilisateurs spécifiques autorisés à accéder à un répertoire, | + | [[http:// |
- | %%%En lui seul ce module ne gère pas les listes d' | + | |
- | %%%[Doc. Apache|http:// | + | Permet de définir des utilisateurs spécifiques autorisés à accéder à un répertoire, |
- | !! I) authn_file_module (shared) | + | \\ |
+ | A lui seul ce module ne gère pas les listes d' | ||
+ | \\ | ||
+ | [[http:// | ||
+ | | ||
Permet l' | Permet l' | ||
- | %%%[Doc. Apache|http:// | + | \\ |
- | !! J) authz_default_module (shared) | + | [[http:// |
+ | | ||
Module de secours pour les autorisations d' | Module de secours pour les autorisations d' | ||
- | %%%Utile en cas de non configuration d'un module de gestion des autorisations d' | + | \\ |
- | %%%[Doc. Apache|http:// | + | Utile en cas de non configuration d'un module de gestion des autorisations d' |
- | !! K) authz_groupfile_module (shared) | + | \\ |
+ | [[http:// | ||
+ | | ||
Permet la gestion de groupes d' | Permet la gestion de groupes d' | ||
- | %%%[Doc. Apache|http:// | + | \\ |
- | !! L) authz_host_module (shared) | + | [[http:// |
- | Permet la gestion de droits associés à une @ IP ou nom (de domaine). | + | |
- | %%%[Doc. Apache|http:// | + | Permet la gestion de droits associés à une adresse |
- | !! M) authz_user_module (shared) | + | \\ |
+ | [[http:// | ||
+ | | ||
Permet la gestion de droits associés à un utilisateur. | Permet la gestion de droits associés à un utilisateur. | ||
- | %%%[Doc. Apache|http:// | + | \\ |
- | !! N) autoindex_module (shared) | + | [[http:// |
+ | | ||
Gère le listing des fichiers / répertoires présents en cas d' | Gère le listing des fichiers / répertoires présents en cas d' | ||
- | %%%[Doc. Apache|http:// | + | \\ |
- | !! O) cgi_module (shared) | + | [[http:// |
- | Autorise l' | + | |
- | %%%[CGI sur Wikipedia|http:// | + | Autorise l' |
- | %%%[Doc. Apache|http:// | + | \\ |
- | !! P) deflate_module (shared) | + | [[http:// |
+ | | ||
Permet la compression gzip sur le contenu avant de l' | Permet la compression gzip sur le contenu avant de l' | ||
- | %%%S' | + | \\ |
- | %%%[Doc. Apache|http:// | + | S' |
- | !! Q) dir_module (shared) | + | \\ |
- | Ajoute automatiquement | + | [[http:// |
- | %%%[Doc. Apache|http:// | + | |
- | !! R) env_module (shared) | + | Ajoute automatiquement |
- | 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:// | + | [[http:// |
- | %%%[Doc. Apache|http:// | + | |
- | !! S) mime_module (shared) | + | Modifie la configuration fournie aux scripts CGI (cf mod_cgi) et aux pages [[wp> |
+ | \\ | ||
+ | [[http:// | ||
+ | | ||
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:// | + | \\ |
- | !! T) negotiation_module (shared) | + | [[http:// |
+ | | ||
Permet de délivrer le contenu le plus opportun à un utilisateur; | Permet de délivrer le contenu le plus opportun à un utilisateur; | ||
- | %%%[Doc. Apache|http:// | + | \\ |
- | !! U) | + | [[http:// |
+ | | ||
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:// | + | [[http:// |
- | !! V) setenvif_module (shared) | + | |
- | Permet de définir des variables d' | + | Permet de définir des variables d' |
- | %%%[User-Agent | + | \\ |
- | %%%[Doc. Apache|http:// | + | [[http:// |
- | !! W) status_module (shared) | + | |
Donne des informations sur l' | Donne des informations sur l' | ||
- | %%%[Doc. Apache|http:// | + | \\ |
+ | [[http:// | ||
- | !!! 3) Désactiver les modules | + | ==== Désactivation des modules |
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 | + | 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 | + | |
- | %%%Pour ce faire, une commande simple existe : | + | Il convient de ne conserver que les modules qui seront |
- | ///[bash] | + | \\ |
+ | J'ai choisi de désactiver | ||
+ | \\ | ||
+ | Pour ce faire, une commande simple existe : | ||
+ | < | ||
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, | + | Si vous ne réussissez pas à trouver le nom du module pour le désactiver, |
- | %%%La commande pour réactiver un module est : | + | |
- | ///[bash] | + | <note tip>La commande pour réactiver un module est : |
- | a2enmod | + | < |
- | /// | + | |
Il faut relancer apache pour activer notre nouvelle configuration : | Il faut relancer apache pour activer notre nouvelle configuration : | ||
- | ///[bash] | + | < |
- | service apache2 restart | + | |
- | /// | + | |
- | %%% | + | |
- | !!!! III) Configuration d' | + | ===== Configuration d' |
- | Nous allons maintenant modifier la configuration d' | + | Nous allons maintenant modifier la configuration d' |
- | %%%Pour ce faire, il faut éditer le fichier | + | \\ |
- | %%%Pensez à faire un back-up | + | Pour ce faire, il faut éditer le fichier |
- | !!! 1) Timeout | + | \\ |
- | Le time-out | + | Pensez à faire une sauvegarde |
- | %%%Par défaut, le time-out | + | |
- | ///[apache] | + | ==== Timeout |
+ | Le timeout | ||
+ | \\ | ||
+ | Par défaut, le timeout | ||
+ | < | ||
# | # | ||
# 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' | + | Sur un très gros serveur cette valeur peut-être encore réduite à 10, voir 5 secondes. De plus, cela permet d' |
- | %%%[Doc. Apache|http:// | + | \\ |
- | !!! 2) KeepAlive | + | [[http:// |
+ | |||
+ | ==== 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' | + | 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:// | + | |
- | !! B) KeepAliveTimeout | + | Si vous avez beaucoup de visiteurs, n' |
- | Le KeepAliveTimeout définit le temps qu'attends | + | [[http:// |
- | %%%Par défaut le délai est de 15 secondes, je le diminue à 10. | + | |
- | %%%Si vous avez beaucoup de visiteurs, n' | + | === KeepAliveTimeout |
- | [Doc. Apache|http:// | + | Le KeepAliveTimeout définit le temps qu'attend |
- | ///[apache] | + | |
+ | Par défaut le délai est de 15 secondes, je le diminue à 10. | ||
+ | |||
+ | Si vous avez beaucoup de visiteurs, n' | ||
+ | [[http:// | ||
+ | < | ||
# | # | ||
# MaxKeepAliveRequests: | # MaxKeepAliveRequests: | ||
Ligne 211: | Ligne 249: | ||
# | # | ||
KeepAliveTimeout 10 | KeepAliveTimeout 10 | ||
- | /// | + | </code> |
- | !!! 3) prefork MPM | + | |
+ | ==== prefork MPM ==== | ||
J'ai définit le module prefork précédemment : " | J'ai définit le module prefork précédemment : " | ||
- | %%%Il s'agit du composant qui s' | + | |
- | %%%Il est primordial de bien le configurer | + | Il s'agit du composant qui s' |
- | %%%Concrètement, | + | |
- | !! A) StartServers | + | Concrètement, |
+ | === 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:// | + | Par défaut, la valeur est de 5. |
- | !! B) MinSpareServers | + | \\ |
+ | [[http:// | ||
+ | === 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:// | + | Par défaut la valeur est de 5. |
- | !! C) MaxSpareServers | + | \\ |
+ | Pour être cohérente, cette valeur doit-être égale à celle de StartServers . | ||
+ | \\ | ||
+ | [[http:// | ||
+ | === 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:// | + | 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' | + | 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:// |
- | %%%Si on souhaite augmenter cette valeur à plus de 256, il faudra définir également [ServerLimit|http:// | + | === MaxClients |
- | %%%[Doc. Apache|http:// | + | Nombre maximum de requêtes à traiter simultanément. Les requêtes supplémentaires sont mise en attente jusqu' |
- | !! 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:// | ||
+ | \\ | ||
+ | [[http:// | ||
+ | === MaxRequestsPerChild | ||
Nombre maximal de requêtes traitées par un processus avant qu'il ne s' | Nombre maximal de requêtes traitées par un processus avant qu'il ne s' | ||
- | %%%Le principal intérêt de ce paramètre est en cas de fuite de mémoire sur les modules : on évite d' | + | \\ |
- | %%%La valeur par défaut est 0 (aucune limite de requêtes), je vais la configurer à 60 afin de ne pas tuer mes process | + | Le principal intérêt de ce paramètre est en cas de fuite de mémoire sur les modules : on évite d' |
- | %%%[Doc. Apache|http:// | + | \\ |
- | ///[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 |
+ | \\ | ||
+ | [[http:// | ||
+ | < | ||
< | < | ||
StartServers | StartServers | ||
Ligne 252: | Ligne 309: | ||
MaxRequestsPerChild | MaxRequestsPerChild | ||
</ | </ | ||
- | /// | + | </code> |
- | !!! 4) HostnameLookups | + | |
- | Cette option permet de faire une résolution DNS des @ IP de nos visiteurs. | + | |
- | %%%C' | + | |
- | %%%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' | + | |
- | %%%[Doc. Apache|http:// | + | |
- | !!!! V) Relancer Apache | + | ==== HostnameLookups ==== |
- | Voila, notre serveur web est un minima adapté à nos besoins en performance | + | Cette option permet de faire une résolution DNS des adresses IP de nos visiteurs. |
- | %%%Afin que notre nouvelle | + | \\ |
- | ///[bash] | + | C'est à dire qu'au lieu de voire apparaitre 88.191.122.115 dans mon access.log je verrais dedi.anael.ei . |
- | service apache2 reload | + | \\ |
- | /// | + | Attention ce paramétrage est lourd pour le serveurs (une requête nslookup par requête Apache |
- | Le reload permet de faire relire le fichier de configuration à Apache une fois que chaque | + | \\ |
- | %%%Le restart stoppe immédiatement le process | + | Laissons le à Off (valeur par défaut). Si besoin, nous pourrons toujours utiliser l' |
+ | \\ | ||
+ | [[http:// | ||
+ | |||
+ | ==== Relancer Apache | ||
+ | Voila, notre serveur web est un minima adapté à nos besoins en performance | ||
+ | |||
+ | Afin que notre nouvelle | ||
+ | < | ||
+ | \\ | ||
+ | Le //reload// permet de faire relire le fichier de configuration à Apache une fois que chaque | ||
+ | \\ | ||
+ | Le //restart// stoppe immédiatement le processus | ||
Ligne 275: | Ligne 337: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
* [[.:|Retour à la liste des tutoriels Apache]] | * [[.:|Retour à la liste des tutoriels Apache]] | ||
* [[:|Retour à la liste des tutoriels]] | * [[:|Retour à la liste des tutoriels]] |