Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:linux:apache [2008/12/31 15:37] benoit |
informatique:linux:apache [2018/09/06 19:10] (Version actuelle) |
||
---|---|---|---|
Ligne 97: | Ligne 97: | ||
Pour effacer l'utilisateur **user2**: | Pour effacer l'utilisateur **user2**: | ||
htpasswd -D /etc/apache2/.htpasswd user2 | htpasswd -D /etc/apache2/.htpasswd user2 | ||
+ | |||
===== VirtualHost : Pour gérer plusieurs sites Web sur un même serveur ===== | ===== VirtualHost : Pour gérer plusieurs sites Web sur un même serveur ===== | ||
+ | ==== Description ==== | ||
+ | Les hébergements virtuels par IP utilisent l'adresse IP de la connexion afin de déterminer quel serveur virtuel doit répondre. Par conséquent, vous devez disposer d'adresses IP différentes pour chaque nom de domaine complet (FQDN) que vous hébergez. Avec un hébergement virtuel par nom, le serveur s'appuit sur les informations transmises par le client dans les en-têtes HTTP de ses requêtes. La technique présentée ici vous permet de disposer de serveurs virtuels différents partagés sur une même adresse IP. | ||
- | ==== Activer VirtualHost ==== | + | |
+ | ==== Activer VirtualHost par nom ==== | ||
Pour l'activer, nous allons indiquer que les sites virtuels vont écouter sur n'importe quelle IP sur le port 80. | Pour l'activer, nous allons indiquer que les sites virtuels vont écouter sur n'importe quelle IP sur le port 80. | ||
Ligne 122: | Ligne 126: | ||
- | ==== Création d'un VirtualHost ==== | + | |
+ | ==== Création d'un VirtualHost par nom ==== | ||
Dans cet exemple nous allons 2 sites : | Dans cet exemple nous allons 2 sites : | ||
* www.siteweb1.com | * www.siteweb1.com | ||
Ligne 185: | Ligne 190: | ||
- | ==== Quelques expressions régulières à connaître ==== | + | Les règles de réécriture utilisent les [[regexp|expressions régulières]] |
- | N’importe quel caractère : **.** | + | |
- | + | ||
- | N’importe lequel de cette liste de caractères : **[abcd]** | + | |
- | + | ||
- | Tout caractère non compris dans la liste (autre que a, b, c ou d) : **[^abcd]** | + | |
- | + | ||
- | Alternative, soit « blanc », soit « noir » : **blanc|noir** | + | |
- | + | ||
- | Une ou N occurrence(s) de l’expression qui précède (N > 1) : **+** | + | |
- | + | ||
- | Zéro ou N occurrence(s) de l’expression qui précède (N>0) : ***** | + | |
- | + | ||
- | Groupement permettant l’utilisation des références inverses ($1,... $n) : **^** | + | |
- | + | ||
- | Délimiter une alternative comme dans (blanclnoir) : **^** | + | |
- | + | ||
- | Ancre de début de ligne : **^** | + | |
- | + | ||
- | Ancre de fin de ligne : **$** | + | |
- | + | ||
==== Quelques drapeaux (ou flags) utiles ==== | ==== Quelques drapeaux (ou flags) utiles ==== | ||
Ligne 286: | Ligne 270: | ||
</Directory> | </Directory> | ||
+ | Admettons la configuration suivante sur le site **www.zikossworld.com**, on force toutes les urls **http://www.zikossworld.com/dokuwiki** à être ré-ecrites en **https://wiki.zikossworld.com/** : | ||
+ | <Directory /var/www/test> | ||
+ | RewriteEngine On | ||
+ | RewriteCond %{SERVER_PORT} !^443$ | ||
+ | RewriteCond %{REQUEST_URI} ^/dokuwiki(.*) | ||
+ | RewriteRule .* https://wiki.zikossworld.com/%{REQUEST_URI} [QSA,R=301,L] | ||
+ | </Directory> | ||
+ | |||
+ | Si on veux juste sécuriser en HTTPS la partie **/admin** de son site : | ||
+ | <Directory /var/www/test> | ||
+ | RewriteEngine On | ||
+ | RewriteCond %{SERVER_PORT} !^443$ | ||
+ | RewriteCond %{REQUEST_URI} ^/admin(.*) | ||
+ | RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [QSA,R=301,L] | ||
+ | </Directory> | ||
Ligne 319: | Ligne 318: | ||
+ | ==== Proxy en vue d'une redirection de flux vers un ou plusieurs Tomcat ==== | ||
+ | |||
+ | Pour relayer simplement la requêtes vers un tomcat en http | ||
+ | |||
+ | ProxyPass /test http://10.0.0.2:8383/test | ||
+ | ProxyPassReverse /test http://10.0.0.2:8383/test | ||
+ | # Il est parfois nécessaire d'ajouter la directive ci-dessous s'il y a une gestion de cookies sur le site. | ||
+ | ProxyPassReverseCookieDomain 10.0.0.2:8383 www.site.com | ||
+ | |||
+ | Pour relayer vers plusieurs Tomcat avec équilibrage de charge : | ||
+ | |||
+ | <Proxy balancer://tomcatservers> | ||
+ | BalancerMember http://10.0.0.2:8383 retry=60 | ||
+ | BalancerMember http://10.0.0.3:8384 retry=60 | ||
+ | </Proxy> | ||
+ | | ||
+ | <Location /test> | ||
+ | Allow From All | ||
+ | ProxyPass balancer://tomcatservers/test stickysession=JSESSIONID nofailover=off | ||
+ | </Location> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== SSL ===== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Création du certificat SSL ==== | ||
+ | |||
+ | Se positionner dans le répertoire de configuration apache : | ||
+ | cd /etc/httpd/conf/ | ||
+ | |||
+ | Pour générer le certificat voir : [[openssl#creer_un_certificat_ssl|Créer un certificat SSL avec OpenSSL]] | ||
+ | |||
+ | |||
+ | ==== Configuration dans apache ==== | ||
+ | |||
+ | Listen 443 | ||
+ | AddType application/x-x509-ca-cert .crt | ||
+ | AddType application/x-pkcs7-crl .crl | ||
+ | | ||
+ | SSLPassPhraseDialog builtin | ||
+ | | ||
+ | SSLSessionCache "shmcb:/var/log/httpd/ssl_scache(512000)" | ||
+ | SSLSessionCacheTimeout 300 | ||
+ | | ||
+ | SSLMutex "file:/var/log/httpd/ssl_mutex" | ||
+ | | ||
+ | <VirtualHost *:443> | ||
+ | DocumentRoot "/ap01/sigfod1/appl/httpd-2.2.6/htdocs" | ||
+ | ServerName www.example.com:443 | ||
+ | ServerAdmin you@example.com | ||
+ | ErrorLog "/ap01/sigfod1/appl/httpd-2.2.6/logs/error_log" | ||
+ | TransferLog "/ap01/sigfod1/appl/httpd-2.2.6/logs/access_log" | ||
+ | SSLEngine on | ||
+ | SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL | ||
+ | SSLCertificateFile "/etc/httpd/conf/server.crt" | ||
+ | SSLCertificateKeyFile "/etc/httpd/conf/server.key" | ||
+ | CustomLog "/var/log/httpd/ssl_request_log" \ | ||
+ | "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" | ||
+ | </VirtualHost> | ||
+ | |||
+ | |||
+ | ===== Charset ===== | ||
+ | Pour afficher correctement les accents dans Apache, ajouter les lignes suivantes | ||
+ | |||
+ | Pour l'UTF-8 : | ||
+ | AddDefaultCharset UTF-8 | ||
+ | IndexOptions Charset=UTF-8 | ||
+ | |||
+ | Pour l'ISO-8859-1 | ||
+ | Affichage par défaut | ||
+ | AddDefaultCharset ISO-8859-1 | ||
+ | IndexOptions Charset=ISO-8859-1 | ||
+ | |||
+ | Note :!: : **IndexOptions** permet d'afficher correctement les accents lorsqu'Apache liste un répertoire. | ||