Académique Documents
Professionnel Documents
Culture Documents
MON WIKI
( H T T P S : / / W I K I . M A X C O R P. O R G )
Et oui, c’est ce dont on va parler ici. Comme ce n’est peut être pas très clair pour tout le monde,
je vais me permettre une toute petite digression pour expliquer ce qu’est le routage, et plus
précisément ce que j’appelle le routage par noms de domaine.
1 of 10 10/3/23, 16:54
Configurer un reverse proxy Apache (HTTP/HTTPS) –... https://wiki.maxcorp.org/configurer-un-reverse-proxy-...
Mais de rien.
Qu’est ce que le routage (http://fr.wikipedia.org/wiki/Routage) ? Ca consiste à se servir d’une
unique machine (comunément appelée “le routeur”) pour diriger des flux réseau vers différents
autres matériels.
Ca sert le plus simplement du monde sur Internet, pour router les différents sous réseaux. Vous
voulez joindre truc.truc.truc.truc, mais vous avez comme IP machin.machin.machin.machin, alors
un routeur va pouvoir vous dire :
“Pour aller vers truc, c’est à gauche, mais si c’est pour aller vers bidule, c’est à droite. Quand à toi
machin, tu es au milieu”.
Ok, c’est résumé très vite pour les puristes, mais l’idée est là
Il existe différents autres types de routage. On utilise ce terme parce que l’idée de donner des
routes (ou des chemins) pour diriger des flux reste la même.
Une machine (routeur, PC, serveur, …) reçoit un flux, et à partir de différents critères choisit de
rediriger ce flux vers un autre matériel du réseau, l’objectif final étant bien sûr que ce flux arrive à
destination de manière sûre.
On y arrive.
Un nouvel article (http://wiki.maxcorp.org/configurer-un-reverse-proxy-avec-haproxy-http-https/)
pour utiliser haproxy en tant que reverse-proxy, logiciel plus léger et plus adapté qu’apache à cet
usage.
Or donc, si vous avez plusieurs serveurs web mais une seule connexion Internet, alors vous avez
sans doute déjà eu cette problématique.
Comment joindre plusieurs sites web sur différents serveurs depuis les Internet ?
La solution qui s’impose directement, c’est du routage de port.
Ce routage particulier consiste à router différents flux reçus depuis Internet vers des machines à
l’intérieur de votre réseau local en se basant sur les ports réseaux utilisés. Ce n’est pas le lieu
pour décrire un port réseau. Voyez ça comme une porte. Vous rentrez dans la même maison, mais
selon que vous utilisiez la porte d’entrée ou la véranda, vous êtes “redirigés” vers une pièce
différente de la maison.
Ce type de routage présente un inconvénient certain : chacun de vos utilisateurs doit spécifier la
porte qu’il veut utiliser pour joindre le bon serveur.
En général, ça consiste à taper nomdedomaine.tld:port dans votre navigateur, ce qui n’est pas
2 of 10 10/3/23, 16:54
Configurer un reverse proxy Apache (HTTP/HTTPS) –... https://wiki.maxcorp.org/configurer-un-reverse-proxy-...
très pratique, et difficile à expliquer à vos clients. (Et oubliez de suite expliquer ça à Google and
co)
C’est là qu’intervient ce super outil, le reverse proxy, ou mandataire inverse
(http://fr.wikipedia.org/wiki/Reverse_proxy). Nous allons voir ici comment l’utiliser avec Apache
(http://www.apache.org/), un serveur web populaire. Il est sans doute possible de le faire
également avec NGinX ou lightHTTPD, mais ce n’est pas le sujet
Le mandataire inverse va regarder le site que vous voulez joindre, et vous rediriger vers le bon
serveur directement. Il servira ensuite d’intermédiaire sur le réseau entre vous et le serveur.
Voila voila !
Pour commencer, il va falloir définir un serveur mandataire. C’est sur ce serveur que nous allons
configurer le mandataire inverse.
Il peut héberger lui-même des sites Internet, ou vous pouvez l’utiliser uniquement comme
mandataire, ça n’a pas d’importance. Si vous utilisez cette solution à des vues industrielles,
mieux vaut prévoir un serveur robuste, puisqu’il supportera toutes les requêtes vers tous vos
sites web.
Ensuite, il vous faut configurer votre routeur/machinbox© pour rediriger tout le flux web (port 80)
vers le serveur mandataire. Ceci se fait grâce à un routage de port classique. Toutes les requêtes
web arriveront maintenant sur ce serveur, qui va décider quoi en faire.
En théorie on devrait pouvoir faire la même chose pour l’HTTPS, mais vu qu’il y a quand même des
contraintes de certificats et que je n’ai pas testé, je préfère ne pas dire de bêtises ici.
Là, c’est simple. Il vous faut un serveur Apache installé et fonctionnel sur votre serveur
mandataire. C’est tout. Un système de pare-feu ne serait également pas de trop (ce serveur est
l’unique point d’entrée d’Internet, rappelons le )
Il vous faut également (bien evidemment ?) une connexion ssh vers votre serveur, ou à défaut un
écran-clavier-souris.
3 of 10 10/3/23, 16:54
Configurer un reverse proxy Apache (HTTP/HTTPS) –... https://wiki.maxcorp.org/configurer-un-reverse-proxy-...
1 <VirtualHost *:80>
2
3 ServerName nomdedomaine.tld
4 ProxyPreserveHost On
5 ProxyRequests off
6 ProxyPass / http://IPSERVEURWEBINTERNE/
7 ProxyPassReverse / http://IPSERVEURWEBINTERNE/
8
9 </VirtualHost>
Cela va permettre de rediriger toutes les requêtes sur nomdedomaine.tld en http vers le serveur
IPSERVEURWEBINTERNE
C’est simple et efficace. Vous pouvez créer toutes vos autres redirections dans ce fichier, ou
créer un fichier par redirection (plus propre mais plus contraignant). A vous de voir.
Une fois ces fichier créés, il vous faut activer les hôtes virtuels.
Faites
4 of 10 10/3/23, 16:54
Configurer un reverse proxy Apache (HTTP/HTTPS) –... https://wiki.maxcorp.org/configurer-un-reverse-proxy-...
Il ne vous reste plus qu’à tester. De l’exterieur, essayez de joindre nomdedomaine.tld, tout doit
fonctionner
Et voila, vous avez économisé plein d’adresses IP publiques ! Mais pourquoi utiliser plusieurs
serveurs Web derrière une seule IP petits coquinous ? Ça, ça vous regarde…
Si jamais j’ai la problématique un jour, je configurerai ça pour de l’HTTPS (mais honnêtement
j’espère jamais )
Et dans ce cas je rajouterai ça sur le blog, promis ! Voir juste au dessous !
5 of 10 10/3/23, 16:54
Configurer un reverse proxy Apache (HTTP/HTTPS) –... https://wiki.maxcorp.org/configurer-un-reverse-proxy-...
(éventuellement auto-signés).
Il vous faudra activer le SSL sur votre reverse proxy :
Ensuite, placez vos certificats (clef publique, clef privée) dans le dossier /etc/apache2/ssl/.
6 of 10 10/3/23, 16:54
Configurer un reverse proxy Apache (HTTP/HTTPS) –... https://wiki.maxcorp.org/configurer-un-reverse-proxy-...
1 <VirtualHost *:443>
2 # Décommentez cette ligne et indiquez-y l'adresse courriel de
3 #ServerAdmin webmaster@my-domain.com
4
5 # Classique, votre nom de domaine
6 ServerName monsite.tld
7
8 # Si jamais vous avez d'autres domaines renvoyant sur ce site,
9 # Vous pouvez utiliser le joker * pour prendre en compte tout
10 #ServerAlias www2.my-domain.com www.my-other-domain.com *.yet-
11
12 # L'emplacement des logs.
13 ErrorLog /var/log/apache2/monsite.tld-error.log
14 LogLevel warn
15 CustomLog /var/log/apache2/monsite.tld-access.log combined
16
17 # SSL magic
18 #
19 # Il est nécessaire d'activer SSL, sinon c'est http qui sera u
20 SSLEngine On
21
22 # On autorise uniquement les clefs de cryptage longue (high) e
23 # SSLCipherSuite HIGH:MEDIUM
24
25 # On autorise SSLV3 et TLSv1, on rejette le vieux SSLv2
26 # SSLProtocol all -SSLv2
27
28 # La clef publique du serveur :
29 SSLCertificateFile /etc/apache2/ssl/moncertificat-cert.pem
30
31 # La clef privée du serveur:
32 # SSLCertificateKeyFile /etc/apache2/ssl/moncertificat-key.pem
33
34 # Theses lines only apply of the rewrite module is enabled.
35 # This is a security enhancement recommanded by the nessus too
36 <IfModule mod_rewrite.c>
37 RewriteEngine on
7 of 10 10/3/23, 16:54
Configurer un reverse proxy Apache (HTTP/HTTPS) –... https://wiki.maxcorp.org/configurer-un-reverse-proxy-...
8 of 10 10/3/23, 16:54
Configurer un reverse proxy Apache (HTTP/HTTPS) –... https://wiki.maxcorp.org/configurer-un-reverse-proxy-...
76 RewriteEngine on
77 RewriteCond %{REQUEST_METHOD} ^{TRACE|TRACK}
78 RewriteRule .* - [F]
79 </IfModule>
80
81 # On renvoit toutes les requêtes HTTP vers l'HTTPS.
82 Redirect permanent / https://monsite.tld/
83
84 </VirtualHost>
9 of 10 10/3/23, 16:54
Configurer un reverse proxy Apache (HTTP/HTTPS) –... https://wiki.maxcorp.org/configurer-un-reverse-proxy-...
A PROPOS
Me contacter (http://wiki.maxcorp.org/me-contacter/)
Tél : 02 55 59 60 02
44100, NANTES
• Windows (https://wiki.maxcorp.org/category/windows/)
• Linux (https://wiki.maxcorp.org/category/linux/)
• Serveurs (https://wiki.maxcorp.org/category/serveur/)
• Autres (https://wiki.maxcorp.org/category/autres/)
Rechercher…
10 of 10 10/3/23, 16:54