J'essaie de supprimer les liens obsolètes de Docker dans ma configuration. Ce qui reste est de se débarrasser de ces erreurs de proxy inverse _Bad Gateway
_ nginx lorsque j'ai recréé un conteneur.
Remarque: j'utilise les réseaux Docker en mode pont. (_docker network create nettest
_)
J'utilise l'extrait de configuration suivant dans nginx:
_location / {
resolver 127.0.0.1 valid=30s;
set $backend "http://confluence:8090";
proxy_pass $backend;
_
confluence
sur mon réseau Docker avec le nom nettest
.nettest
.confluence
de l'intérieur du conteneur nginxconfluence
est répertorié dans le fichier _/etc/hosts
_ du conteneur nginx127.0.0.11
_ de _/etc/resol.conf
_confluence could not be resolved (3: Host not found)
Tout le monde sait comment configurer nginx resolver avec Docker Networks ou une alternative sur la façon de forcer Nginx à résoudre correctement le nom d'hôte du réseau Docker?
Tout d’abord, vous devriez utiliser le serveur DNS intégré de Docker à 127.0.0.11
.
Votre problème peut être causé par l'une des choses suivantes:
nginx tente d'utiliser IPv6 (enregistrement AAAA) pour les requêtes DNS.
Voir https://stackoverflow.com/a/35516395/152949 pour la solution.
Fondamentalement, quelque chose comme:
http {
resolver 127.0.0.11 ipv6=off;
}
Ce n'est probablement plus un problème avec Docker 1.11:
Correction pour ne pas transférer les requêtes IPv6 du domaine de menu fixe vers des serveurs externes ( # 21396 )
Veillez à ne pas écraser accidentellement la directive de configuration resolver
. Dans mon cas, j'avais dans le server
block resolver 8.8.8.8 8.8.4.4;
De générateur de configuration SSL de Mozilla , qui surchargeait le resolver 127.0.0.11;
Dans le http
bloquer. Cela m'a fait me gratter la tête pendant un long moment ...
Peut-être devriez-vous vérifier votre /etc/resolv.conf
Il indique la configuration DNS correcte de votre conteneur, puis utilise l'adresse IP de ce serveur DNS comme résolveur.
127.0.0.11
ne fonctionne pas dans un éleveur
Nous rencontrons ce problème avec les conteneurs Docker sur Windows qui tentent de rechercher Host.docker.internal à l'aide du résolveur interne du docker à 172.0.0.11. Toutes les requêtes seraient résolues correctement sauf Host.docker.internal. Le correctif consistait à ajouter l'indicateur ipv6 = off à la ligne de résolution dans nginx.conf.