Apache
Transcription
Apache
5. Apache Serveur Web client Cours Web serveur requête HTTP Apache réponse : document HTML Serveur Lionel Seinturier • fournit les documents demandés par les clients • exécute des programmes (JSP, servlet, PHP, CGI, ...) • vérifie les droits des clients • fournit un compte-rendu en cas d'erreur Université Pierre & Marie Curie [email protected] • enregistre un audit des requêtes (qui fait quoi quand ?) • gère la charge de la machine 11/7/02 Web 122 Lionel Seinturier Web 123 5. Apache 5. Apache Serveur Web Nombreux serveurs Installation www.yahoo.com (8/2001) • récupération sur le site • lancement Ö occupation disque 9 Mo - 20 sous Unix - 14 sous Windows 2 principaux : Apache, Microsoft IIS Apache - fonctionne sous Unix et Windows - source et binaires disponibles en accès libre - nombreux modules additionnels disponibles 5 répertoires principaux www.apache.org - très répandu - fiable et performant Web Lionel Seinturier 124 Lionel Seinturier - cgi-bin - conf - htdocs - icons - logs Web Répertoire de dépose des programmes CGI Fichiers de configuration Répertoire de dépose des fichiers .html Icônes (.gif, .jpg) utilisés par les documents HTML Répertoire pour les fichiers d'audit (logs) 125 Lionel Seinturier 5. Apache 5. Apache Logs Configuration • audit du serveur • fichiers texte • ≠ paramètres du serveur • fichiers texte Chaque accès au serveur provoque l'ajout d'1 ligne dans - access.log + error.log - httpd.conf en cas d'erreur Configuration générale du serveur httpd.conf : suite de lignes de texte de la forme Format de access.log option valeur client - - [date] "requête" codeRetour volumeTransféré 40aine d'options disponibles 132.227.64.103 - - [18/May/1999:09:43:13 +0200] "GET / HTTP/1.0" 200 1673 132.227.4.9 - - [19/May/1999:13:43:34 +0200] "GET /blank.gif HTTP/1.1" 200 99 Port (mais 1 connexion client ≠ 1 ligne) Ö à purger régulièrement • suivi aisé de l'activité • fichiers dont la taille Ê rapidement Web 126 Lionel Seinturier 80 KeepAliveTimeout 15 DirectoryIndex index.html Web 5. Apache Configuration Quelques autres options de httpd.conf Droits d'accès au serveur : racine du serveur : racine des fichiers .html : racine des fichiers d'icônes Alias /icons/ "C:/Apache/icons/" LoadModule php4_module "C:/php/sapi/php4apache.dll" AddType application/x-httpd-php .php chargement d'un module externe association entre un type MIME et une extension de fichiers MaxClients 150 StartServers 5 MinSpareServers 5 MaxSpareServers 10 Possibilité de limiter l'accès - en fonction du domaine du client - en fonction de l'adresse IP du client - pour un utilisateur authentifié par un mot de passe - pour un groupe d'utilisateurs authentifiés par des mots de passe Utilitaires (répertoire bin) de gestion des fichiers mots de passe (format Unix) : # max de clients : # de processus serveurs initiaux : # min de processus serveurs prêts : # max de processus serveurs prêts 128 Lionel Seinturier - selon une combinaison de ces approches Droits définissables • globalement dans le fichier httpd.conf • localement dans chaque répertoire avec un fichier .htaccess Ö augmenter la disponibilité du serveur et éviter l'écroulement Web 127 5. Apache Configuration ServerRoot "C:/Apache" DocumentRoot "C:/Apache/htdocs" : port TCP utilisé par le serveur : délai au bout duquel la cx TCP est fermée : fichier à charger par défaut Lionel Seinturier Web 129 Lionel Seinturier 5. Apache 5. Apache Configuration Configuration Format Exemple <Directory "répertoire"> # pour un répertoire donné options <Limit methodeHTTP> # pour une méthode HTTP donnée order ... # ordre des clauses allow et deny allow ... # qui a le droit deny ... # qui n'a pas le droit require user ... # accès réservé à un utilisateur require group ... # accès réservé à un groupe </Limit> # éventuellement pour d'autres méthodes HTTP ... </Directory> ... # éventuellement pour d'autres répertoires <Directory "C:\apache\htdocs\projects"> AuthUserFile "C:\.htpasswd" # fichier des mots de passe AuthGroupFile "C:\.htgroup" # fichier des groupes <Limit GET> order allow,deny allow from all # autorisation pour tout le monde </Limit> </Directory> Les options et les droits sont hérités par les sous-répertoires sauf si on les redéfinit Web 130 Lionel Seinturier 5. Apache Configuration Exemple (suite et fin) <Directory "C:\apache\htdocs\projects\golf\team"> <Limit GET> require group golfteam # réservé au groupe golfteam </Limit> </Directory> <Directory "C:\apache\htdocs\projects\golf\team\captain"> <Limit GET> require user captain # réservé à </Limit> # l'utilisateur captain </Directory> Web 132 Lionel Seinturier <Directory "C:\apache\htdocs\projects\golf"> <Limit GET> order deny,allow deny from all # interdit pour tout le monde allow from .golf.org # puis autorisation pour </Limit> # le domaine .golf.org </Directory> Web 131 Lionel Seinturier