User Tools

Site Tools


informatique:logiciels:apache

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:logiciels:apache [2016/01/04 15:23] – mod_proxy pteuinformatique:logiciels:apache [2020/11/02 17:57] (current) pteu
Line 76: Line 76:
 </code> </code>
  
-Les droits d'accès sont définis principalement par les directives **Allow**, **Deny** et **Order**. Order permet de modifier l'ordre de traitement des 2 directives précédente ; voici la façon dont les vérifications sont traitées (source : [[http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html|doc apache]]) :+<WRAP center round important 60%> 
 +Depuis la version 2.4 d'Apache il est recommandé d'utiliser la directive **Require**, [[http://httpd.apache.org/docs/2.4/howto/access.html#host|les directives allow, deny et order étant désormais obsolètes]]. Des exemples d'utilisation de Require sont listés dans la partie [[informatique:logiciels:apache#serveur_mandataire_mod_proxy|mod_proxy]]. 
 +</WRAP> 
 + 
 +<del>Les droits d'accès sont définis principalement par les directives **Allow**, **Deny** et **Order**.</del> Order permet de modifier l'ordre de traitement des 2 directives précédente ; voici la façon dont les vérifications sont traitées (source : [[http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html|doc apache]]) :
  
 >Ordering is one of: >Ordering is one of:
Line 185: Line 189:
  
 # active la fonctionnalité de mandataire direct # active la fonctionnalité de mandataire direct
-# ne concerne pas les directives ProxyPass+# ne concerne pas les directives ProxyPass (reverse proxy, voir plus bas)
 ProxyRequests On ProxyRequests On
  
Line 215: Line 219:
 # ProxyRemoteMatch est identique à ceci près que le premier paramètre est une regexpr # ProxyRemoteMatch est identique à ceci près que le premier paramètre est une regexpr
  
-# Créer un alias vers un site distant (~mirroring) / mandataire inverse ou passerelle +# Créer un "aliasvers un site distant (~mirroring) / mandataire inverse (reverse proxy) ou passerelle 
-# normalement utilisé avec "ProxyRequest on" +# ex : http://mon_proxy/pteu/ -> http://pteu.fr/
-# ex : http://ce_serveur/pteu/ -> http://pteu.fr/+
 <Location "/pteu/"> <Location "/pteu/">
    ProxyPass "http://pteu.fr/"    ProxyPass "http://pteu.fr/"
Line 224: Line 227:
 #ProxyPass "/pteu/" "http://pteu.fr/" #ProxyPass "/pteu/" "http://pteu.fr/"
  
- # Enable/disable the handling of HTTP/1.1 "Via:" headers. +# Enable/disable the handling of HTTP/1.1 "Via:" headers. 
- # ("Full" adds the server version; "Block" removes all outgoing Via: headers) +# ("Full" adds the server version; "Block" removes all outgoing Via: headers) 
- # Set to one of: Off | On | Full | Block +# Set to one of: Off | On | Full | Block 
- ProxyVia Off+ProxyVia Off
  
-definit le nombre max de proxys traversés / pour éviter les boucles infinies+définit le nombre max de proxys traversés / pour éviter les boucles infinies
 ProxyMaxForwards 5 ProxyMaxForwards 5
 # timeout réponse d'un site destination; par défaut = Timeout = 60s # timeout réponse d'un site destination; par défaut = Timeout = 60s
Line 240: Line 243:
 # #
 # bloquer via nom d'hote, de domaine ou tld # bloquer via nom d'hote, de domaine ou tld
-# attention les DNS sont résolus au démarrage ce qui ralentit le démarrage d'Apache+# attention les DNS sont résolus au démarrage d'Apache, ce qui le ralentit si en grand nombre
 ProxyBlock ".sex" "example.com" ProxyBlock ".sex" "example.com"
 </IfModule> </IfModule>
Line 258: Line 261:
 </code> </code>
  
-=====Réécriture / mod_rewrite=====+=====mod_rewrite=====
  
-Le **mod_rewrite** permet de manipuler les requêtes entrantes.+Le **mod_rewrite** permet de manipuler les requêtes entrantes du serveur http.
  
-Activation du module apache :+Activation du module Apache :
 <code bash> <code bash>
 a2enmod rewrite a2enmod rewrite
 </code> </code>
  
-Mise ne place d'une redirection temporaire ajouter ces lignes dans le fichier de configuration du vhost (''/etc/apache2/site-enable/vhost_redir'' dans mon cas) :+====Syntaxe==== 
 + 
 +source : https://httpd.apache.org/docs/current/fr/mod/mod_rewrite.html#rewriterule 
 + 
 +Exemple de blocage de sites :
 <code bash> <code bash>
 +<IfModule mod_rewrite.c>
 +   RewriteCond %{HTTP_HOST} sex.com [NC,OR]
 +   RewriteCond %{HTTP_HOST} poker.fr [NC,OR]
 +   RewriteCond %{HTTP_HOST} drugs.com [NC] # pas de OR pour le dernière condition...
 +   RewriteRule ^(.*)$ - [F,L]
 +</IfModule>
 +</code>
 +On enchaine différentes conditions ''RewriteCond'' (avec le drapeau ''NC'' pour //NoCase//, insensible à la casse) suivis d'un //OU logique// (''OR''), puis on définit la règle ''RewriteRule'' qui contient l'action ''F'' (envoi une erreur **403 : Forbidden** au navigateur) et ''L'' (last) pour arrêter le processus de réécriture.
 +
 +Exemple de mise ne place d'une redirection (permanente=301 par défaut) : ajouter ces lignes dans le fichier de configuration du vhost (''/etc/apache2/site-enable/vhost_redir'' dans mon cas) :
 +<code bash>
 +<IfModule mod_rewrite.c>
 RewriteEngine On RewriteEngine On
-RewriteRule ^(.*)$ http://pteu.fr$1 [R=301,L]+RewriteRule ^(.*)$ http://pteu.fr$1 [R,L] 
 +</IfModule>
 </code> </code>
  
 **Syntaxe** : ''RewriteRule <regex> <url de redirection> [<paramètres>]'' **Syntaxe** : ''RewriteRule <regex> <url de redirection> [<paramètres>]''
  
-dans l'exemple ci-dessus, on redirige tout (''^(.*)$'') vers pteu.fr, avec un code HTTP ''301'' (qui correspond à une redirection temporaire). ''L'' indique que c'est la dernière règle à parcourir.+dans l'exemple ci-dessus, on redirige tout (''^(.*)$'') vers pteu.fr, avec un code HTTP ''301'' (qui correspond à une redirection permanente). On peut préciser une redirection temporaire (code=302avec : 
 +<code bash> 
 +[..] 
 +RewriteRule ^(.*)$ http://pteu.fr$1 [R=302,L
 +</code> 
 + 
 +====Variables utilisables==== 
 + 
 +https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewritecond 
  
-==== Générer un certificat ====+=====Générer un certificat=====
  
 Sous Redhat : Sous Redhat :
Line 410: Line 439:
 =====De l'utilisation d'apache2ctl===== =====De l'utilisation d'apache2ctl=====
  
-Utilisation de l'outil de diagnostique **apache2ctl** :+Utilisation de l'outil de diagnostique **apache2ctl** (ou **apachectl**, c'est un alias pour la "compatibilité ascendante": 
 +  * ''apache2ctl -V'' : affiche la version et les options de compilation 
 +<code bash> 
 +apachectl -V 
 +Server version: Apache/2.4.29 (Unix) 
 +Server built:   Oct 26 2017 16:18:29 
 +Server's Module Magic Number: 20120211:68 
 +Server loaded:  APR 1.6.2, APR-UTIL 1.6.0 
 +Compiled using: APR 1.6.2, APR-UTIL 1.6.0 
 +Architecture:   64-bit 
 +Server MPM:     worker 
 +  threaded:     yes (fixed thread count) 
 +    forked:     yes (variable process count) 
 +Server compiled with.... 
 + -D APR_HAS_SENDFILE 
 + -D APR_HAS_MMAP 
 +[..] 
 +</code>
   * ''apache2ctl -S'' : permet de lister tous les VirtualHost pris en compte par Apache   * ''apache2ctl -S'' : permet de lister tous les VirtualHost pris en compte par Apache
 <code bash> <code bash>
Line 421: Line 467:
 Syntax OK Syntax OK
 </code> </code>
 +  * ''apache2ctl -M'' : lister les modules chargés
 +
  
 ===== Divers ===== ===== Divers =====
informatique/logiciels/apache.1451921001.txt.gz · Last modified: 2016/01/04 15:23 by pteu