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.

hipache

 

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

 

Sur le même sujet :