Chez un de mes clients, je devais ajouter un nouveau serveur web sous Apache qui fonctionnerait en mode ssl. Le problème est que, leur serveur de courrier, en l’occurrence Zimbra, fonctionne déjà sur ce port et il n’ont qu’une seule adresse IP externe.
J’ai d’abord pensé me servir du serveur Apache de Zimbra pour simplement ajouter un nouveau site web. Mais je n’aime pas cette option, car je préfère laisser Zimbra intègre, car sinon à chaque mise à jour de Zimbra il faut réappliquer les changements au serveur Apache de Zimbra.
De plus, je ne voulais pas ajouter une charge supplémentaire au serveur Zimbra, car celui-ci est déjà chargé.
Là intervient ReverseProxy de Apache. ReverseProxy est une option extrêmement puissante d’Apache qui permet à site web d’être l’intermédiaire pour un autre.
Ainsi, mon nouveau serveur web va recevoir toutes les connections externe au port 443 et ce, sur une seule adresse IP et dépandant si le site demandé est monsite.example.com ou zimbra.example.com celui sera redirigé au bon endroit.
Voici un exemple de ce que ça va donner :

Voici donc la configuration à mettre dans le httpd.conf de votre serveur Apache :
ServerName monsite.example.com
SSLProxyEngine On
NameVirtualHost *:443
<VirtualHost *:443>
ServerName zimbra.example.com
ProxyRequests off
ProxyPass / https://zimbra.example.com/
ProxyPassReverse / https://zimbra.exmaple.com/
</VirtualHost>
À noter que ça va fonctionner, qu’importe le serveur distant, ça ne nécessite aucune configuration sur le serveur distant. Ça pourrait même être un MS Exchange!




24 avril 2009 at 21 h 33 min
Très bel article Étienne, pur et riche en information. Merci de partager ces informations avec nous. Je suis certain j’utiliserai un jour ces informations.
26 avril 2009 at 12 h 48 min
Merci! C’est toujours plaisant de savoir mes articles sont apprécié.
17 décembre 2009 at 7 h 41 min
j’aurais aimé avoir un peu plus d’info sur la méthode utilisé car celle-ci m’interesse.
En fait le serveur apache et zimbra sont configuré avec une ip locale, sur le routeur (ip wan) tu redirige le port 80 vers apache (ip locale)et ensuite d’apache vers zimbra si dans l’adresse il y’a zimbra.example.com
Ensuite tu garde le serveur dns de ton nom de domaine, ms par contre tu config un dns aussi sur apache avec comme seul difference l’adresse de zimbra
Donc dns vu par tout le monde : zimbra.example.com = ip publique
dns sur le serveur apache : zimbra.example.com = ip local.
ai-je Bon ?
17 décembre 2009 at 8 h 40 min
Oui, vous avez tout bon