Hipache, un reverse proxy Web
Présentation :
Hipache est un reverse proxy Web très lié à l’environnement Docker. Créé spécialement par Dotcloud (la société qui porte Docker), il redirige les requêtes Web vers de nombreux containers Docker. Il est l’outil le plus adapté pour cet environnement.
Installation
Il existe en image docker officielle
docker pull hipache
Sinon, installer redis, node, hipache :
sudo apt-get install redis-server git-core curl build-essential \ openssl libssl-dev git clone https://github.com/joyent/node.git cd node ./configure make sudo make install npm install hipache -g
Configuration
Créer si besoin un certificat SSL :
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/ssl.key \ -out /etc/ssl/ssl.crt touch /var/log/hipache_access.log
Modifier si besoin le fichier de conf :
/usr/local/lib/node_modules/hipache/config/config.json :
{ "server": { "accessLog": "/var/log/hipache_access.log", "port": 80, "workers": 10, "maxSockets": 100, "deadBackendTTL": 30, "tcpTimeout": 30, "retryOnError": 3, "deadBackendOn500": true, "httpKeepAlive": false, "https": { "port": 443, "key": "/etc/ssl/ssl.key", "cert": "/etc/ssl/ssl.crt" } }, "redisHost": "127.0.0.1", "redisPort": 6379 }
Définition des redirections
Hipache utilise Redis pour définir des redirections Web.
Il faut installer le client Redis sur la machine hôte :
apt-get install redis-tools
Redis est une base NoSQL qui manipule des données de type clé-valeur.
C’est assez simple à configurer :
- Mon container Hipache a l’adresse 172.17.0.2
- J’ai un container Lamp (172.17.0.3) qui écoute sur le port 80.
- J’ai un container DockerUI (172.17.0.4) qui écoute sur le port 9000.
redis-cli -h 172.17.0.2 rpush frontend:www.societe.com www redis-cli -h 172.17.0.2 rpush frontend:www.societe.com http://172.17.0.3:80 redis-cli -h 172.17.0.2 rpush frontend:docker.societe.com dockerui redis-cli -h 172.17.0.2 rpush frontend:docker.societe.com http://172.17.0.4:9000