Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:docker:general:traefik [2020/10/07 20:42] – qduchemi | technique:docker:general:traefik [2021/11/16 00:45] (Version actuelle) – supprimée qduchemi | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{indexmenu_n> | ||
- | # Traefik, un reverse-proxy pour Docker | ||
- | Une des pièces centrales de l' | ||
- | |||
- | < | ||
- | * La documentation officielle peut être retrouvée ici : https:// | ||
- | * La configuration spécifique pour Picasoft est versionnée ici : https:// | ||
- | </ | ||
- | |||
- | ## Problématique | ||
- | |||
- | Sur chaque machine, Picasoft héberge plusieurs services web accessibles via une URL. Lors de la consultation sur un navigateur web, cette URL est traduite en adresse IP (grâce au DNS), et permet de trouver la machine qui correspond à l'URL. | ||
- | |||
- | Chaque service tourne dans un conteneur Docker. En prenant un exemple, la situation est la suivante : | ||
- | |||
- | {{ : | ||
- | |||
- | Le navigateur contacte naturellement le port `443` car l'URL est en HTTPS, dans cet exemple. | ||
- | |||
- | < | ||
- | |||
- | En réalité, elle n'a **aucun moyen de le savoir**. | ||
- | |||
- | < | ||
- | |||
- | ## Utiliser les ports | ||
- | |||
- | Une technique traditionnelle, | ||
- | |||
- | {{ : | ||
- | |||
- | Ainsi, chaque conteneur écoute sur un port spécifique : | ||
- | |||
- | * `team.picasoft.net: | ||
- | * `pad.picasoft.net: | ||
- | |||
- | < | ||
- | |||
- | C'est une solution simple, néanmoins elle nécessite d' | ||
- | |||
- | ## Utiliser un reverse proxy | ||
- | |||
- | L' | ||
- | |||
- | * Un *proxy* est un serveur vers lequel sont redirigées toutes les requêtes qui **sortent** d'un ordinateur (par exemple, dans une entreprise, une université...) | ||
- | * Un *reverse proxy* est un serveur vers lequel sont redirigées toutes les requêtes qui **entrent** vers un ordinateur. | ||
- | |||
- | L' | ||
- | |||
- | < | ||
- | |||
- | Il y a plusieurs solutions. `nginx` peut tout à faire être [utilisé comme reverse proxy](https:// | ||
- | |||
- | C'est pourquoi nous utilisons Traefik, un outil clé en main pour Docker. Traefik fonctionne comme un reverse proxy traditionnel, | ||
- | |||
- | {{ : | ||
- | |||
- | * L' | ||
- | * Traefik découvre automatiquement les nouveaux services en " | ||
- | * Traefik gère automatiquement la création et le renouvellement des certificats des services | ||
- | * Comme tout reverse-proxy, | ||
- | |||
- | En somme, pour ajouter un nouveau service accessible depuis internet via HTTPS, il suffit d' |