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.

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 :