informatique:logiciels:apache
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:logiciels:apache [2011/01/05 08:11] – Order pteu | informatique:logiciels:apache [2020/11/02 17:57] (current) – pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{tag> | ||
====== Apache ====== | ====== Apache ====== | ||
- | [[http:// | + | [[http:// |
- | Les fichiers de configuration diffèrent selon la distribution Linux utilisée : sous Redhat le fichier de conf principal est **/ | + | Les fichiers de configuration diffèrent selon la distribution Linux utilisée : sous Redhat-like le fichier de conf principal est **/ |
- | Les fichiers des logs sont situés dans le répertoire **/ | + | =====Configuration===== |
- | Pour connaitre | + | Dans les versions les plus récentes d' |
+ | |||
+ | De même pour les modules, avec les dossiers **mods-available/ | ||
- | =====Configuration===== | ||
Exemple de directives de configuration commentées : | Exemple de directives de configuration commentées : | ||
Line 20: | Line 20: | ||
====Vérifications==== | ====Vérifications==== | ||
- | Il existe 3 syntaxes pour vérifier la configuration d' | + | Il existe 3 syntaxes pour vérifier la configuration d' |
<code bash> | <code bash> | ||
httpd -t | httpd -t | ||
- | # cette commande produit un code de sortie, 0 pour OK et 1 en cas d' | + | apachectl -t |
+ | # cette commande produit un code de sortie, 0 pour OK et 1 en cas d' | ||
# les 2 commandes ci-dessous indique où est l' | # les 2 commandes ci-dessous indique où est l' | ||
Line 75: | Line 76: | ||
</ | </ | ||
- | Les droits d' | + | <WRAP center round important 60%> |
+ | Depuis la version 2.4 d' | ||
+ | </ | ||
+ | |||
+ | <del>Les droits d' | ||
> | > | ||
Line 164: | Line 169: | ||
- | ===== mod ssl ===== | + | =====Proxy / mod_proxy===== |
+ | |||
+ | Ce module permet d' | ||
+ | * proxy : fonctionnalités de base du serveur mandataire | ||
+ | * proxy_http : permet de gérer le protocole HTTP | ||
+ | * proxy_connect : permet de gérer les connexion SSL chiffrées avec la méthode CONNECT (simple redirection dans ce cas) | ||
+ | * cache et disk_cache : ajoute la fonctionnalité de cache | ||
+ | * headers : permet de manipuler les en-têtes | ||
+ | |||
+ | Activer ceux qu'il faut en fonction des besoins ; dans mon cas : | ||
+ | <code bash> | ||
+ | a2enmod proxy proxy_http proxy_connect headers | ||
+ | </ | ||
+ | |||
+ | Exemple de configuration commentée : | ||
+ | <code bash> | ||
+ | # ref : https:// | ||
+ | < | ||
+ | |||
+ | # active la fonctionnalité de mandataire direct | ||
+ | # ne concerne pas les directives ProxyPass (reverse proxy, voir plus bas) | ||
+ | ProxyRequests On | ||
+ | |||
+ | <Proxy *> | ||
+ | | ||
+ | # on refuse tout par défaut | ||
+ | | ||
+ | # restriction sur un domaine/nom d' | ||
+ | # attention cela provoque une double requete DNS + inverse de la part du serveur | ||
+ | # | ||
+ | # restriction au localhost (127/8, ::1, IP du serveur local) | ||
+ | | ||
+ | # restriction des IPs clientes au seul LAN | ||
+ | | ||
+ | # NB : | ||
+ | # - si des directives doivent être toutes validées (aucune négative et au moins une positive), | ||
+ | # on encadre par < | ||
+ | # - si au moins l'une doit être positive, on encadre par < | ||
+ | # - si aucune ne doit retourner de résultat positif on utilise < | ||
+ | </ | ||
+ | |||
+ | # ajout automatique du suffixe aux noms d' | ||
+ | ProxyDomain " | ||
+ | # connexion sans mandataire | ||
+ | NoProxy | ||
+ | # définit le proxy suivant pour toutes (*) les requêtes | ||
+ | # | ||
+ | # ProxyRemote ftp ftp:// | ||
+ | # ProxyRemoteMatch est identique à ceci près que le premier paramètre est une regexpr | ||
+ | |||
+ | # Créer un " | ||
+ | # ex : http:// | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | # syntaxe alternative, | ||
+ | #ProxyPass "/ | ||
+ | |||
+ | # Enable/ | ||
+ | # (" | ||
+ | # Set to one of: Off | On | Full | Block | ||
+ | ProxyVia Off | ||
+ | |||
+ | # définit le nombre max de proxys traversés / pour éviter les boucles infinies | ||
+ | ProxyMaxForwards 5 | ||
+ | # timeout réponse d'un site destination; | ||
+ | # | ||
+ | # préserve l' | ||
+ | # | ||
+ | |||
+ | # | ||
+ | # Filtrages destinations | ||
+ | # | ||
+ | # bloquer via nom d' | ||
+ | # attention les DNS sont résolus au démarrage d' | ||
+ | ProxyBlock " | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # controle utilisation de la methode CONNECT sur certains ports seulement | ||
+ | # défaut : AllowCONNECT 443 563 | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | =====HTTPS / mod_ssl===== | ||
Pour activer le **mod SSL** qui permet le chiffrement des données : | Pour activer le **mod SSL** qui permet le chiffrement des données : | ||
- | | + | <code bash> |
+ | a2enmod ssl | ||
+ | </ | ||
+ | |||
+ | =====mod_rewrite===== | ||
+ | |||
+ | Le **mod_rewrite** permet de manipuler les requêtes entrantes du serveur http. | ||
+ | |||
+ | Activation du module Apache : | ||
+ | <code bash> | ||
+ | a2enmod rewrite | ||
+ | </ | ||
+ | |||
+ | ====Syntaxe==== | ||
+ | |||
+ | source : https:// | ||
+ | |||
+ | Exemple de blocage de sites : | ||
+ | <code bash> | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | On enchaine différentes conditions '' | ||
+ | |||
+ | Exemple de mise ne place d'une redirection (permanente=301 par défaut) : ajouter ces lignes dans le fichier de configuration du vhost (''/ | ||
+ | <code bash> | ||
+ | < | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^(.*)$ http:// | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Syntaxe** : '' | ||
+ | |||
+ | dans l' | ||
+ | <code bash> | ||
+ | [..] | ||
+ | RewriteRule ^(.*)$ http:// | ||
+ | </ | ||
+ | |||
+ | ====Variables utilisables==== | ||
+ | |||
+ | https:// | ||
- | ==== Générer un certificat ==== | + | =====Générer un certificat===== |
Sous Redhat : | Sous Redhat : | ||
Line 299: | Line 435: | ||
**NB** : dans tous les fichiers suivant, les commentaires sont précédés d'un dièze (#) | **NB** : dans tous les fichiers suivant, les commentaires sont précédés d'un dièze (#) | ||
**ATTENTION** : il redémarrer les serveurs pour qu'ils prennent en compte la nouvelle configuration (clic droit sur l' | **ATTENTION** : il redémarrer les serveurs pour qu'ils prennent en compte la nouvelle configuration (clic droit sur l' | ||
+ | |||
+ | |||
+ | =====De l' | ||
+ | |||
+ | Utilisation de l' | ||
+ | * '' | ||
+ | <code bash> | ||
+ | apachectl -V | ||
+ | Server version: Apache/ | ||
+ | Server built: | ||
+ | Server' | ||
+ | Server loaded: | ||
+ | Compiled using: APR 1.6.2, APR-UTIL 1.6.0 | ||
+ | Architecture: | ||
+ | Server MPM: | ||
+ | threaded: | ||
+ | forked: | ||
+ | Server compiled with.... | ||
+ | -D APR_HAS_SENDFILE | ||
+ | -D APR_HAS_MMAP | ||
+ | [..] | ||
+ | </ | ||
+ | * '' | ||
+ | <code bash> | ||
+ | apache2ctl -S | ||
+ | VirtualHost configuration: | ||
+ | wildcard NameVirtualHosts and _default_ servers: | ||
+ | *:80 is a NameVirtualHost | ||
+ | | ||
+ | port 80 namevhost 192.168.1.1 (/ | ||
+ | Syntax OK | ||
+ | </ | ||
+ | * '' | ||
Line 332: | Line 501: | ||
==== ServerSignature ==== | ==== ServerSignature ==== | ||
- | | + | <code bash> |
+ | ServerSignature On | Off | EMail | ||
+ | </ | ||
Pour afficher la signature d' | Pour afficher la signature d' | ||
+ | |||
+ | ====ScriptAlias==== | ||
+ | |||
+ | Aujourd' | ||
+ | < | ||
+ | Internal Server Error | ||
+ | |||
+ | The server encountered an internal error or misconfiguration and was unable to complete your request. | ||
+ | |||
+ | Please contact the server administrator, | ||
+ | |||
+ | More information about this error may be available in the server error log. | ||
+ | </ | ||
+ | |||
+ | D' | ||
+ | < | ||
+ | [Mon Jun 24 21:05:03 2013] [error] [client 192.168.1.1] (13)Permission denied: exec of '/ | ||
+ | [Mon Jun 24 21:05:03 2013] [error] [client 192.168.1.1] Premature end of script headers: toto.html | ||
+ | </ | ||
+ | |||
+ | Après avoir tourné en rond quelques minutes en regardant si son extension (html) n' | ||
+ | <code bash> | ||
+ | ScriptAlias /foo "/ | ||
+ | < | ||
+ | | ||
+ | | ||
+ | Order allow,deny | ||
+ | Allow from 192.168.1 | ||
+ | </ | ||
+ | </ | ||
+ | Et oui c'est bien ce fâcheux '' | ||
informatique/logiciels/apache.1294215082.txt.gz · Last modified: 2013/10/14 20:55 (external edit)