Reverse proxy

1. Pourquoi utiliser un reverse proxy ?

Chaque container démarré sur le serveur dispose de sa propre adresse IP. Cette adresse peut être obtenue simplement avec la commande docker et le nom ou l’identifiant du container :

$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' 8233221aeda5 
172.17.0.2 

Depuis le serveur lui-même, il est possible de vérifier que le service tournant dans le container fonctionne, avec une simple requête curl :

$ curl -I http://172.17.0.2:8080 
HTTP/1.1 200 OK 

Pour le moment, tenter la même chose depuis l’adresse IP du serveur fonctionne aussi, car nous avons associé le port 8080 du serveur à celui du container que nous avons démarré. Empêcher un accès direct à l’application est une mauvaise idée. Tout comme démarrer plusieurs applications utilisant le port 8080. C’est d’ailleurs impossible : plusieurs applications ne peuvent écouter directement sur une même paire IP:Port.

On peut aussi démarrer le container en utilisant le réseau de l’hôte, c’est-à-dire du serveur. Dans ce cas, le container utilise les adresses et les ports du serveur, il n’y a plus d’isolation du réseau. Mais là encore, deux containers ne peuvent pas utiliser le même port.

$ docker run --network=host ... 

Nous pourrions envisager d’autres solutions, bas niveau, avec Netfilter, du NAT (Network Address...

Pour consulter la suite, découvrez le livre suivant :
couv_EPHADIS.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Exposer ses services
Suivant
Répartition de charge