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