Besoin d'aide. J'ai essayé de trouver une solution à ce problème et je n'ai pas pu trouver de réponse, ou plutôt je n'en ai pas rencontré.
J'ai un conteneur docker avec NGINX, agissant comme un proxy inverse. Docker pour Windows version 1.12.5 (9503).
upstream mysite {
server 127.0.0.1:8090;
#server localhost:8090; (have also tried this option)
}
server {
listen 0.0.0.0:80;
server_name localhost;
location / {
proxy_pass http://mysite;
}
}
Dans le code localhost ci-dessus: 8090 est l'url d'un site Web hébergé sur IIS sur ma machine hôte. Lorsque j'accède à l'url sur NGINX, j'obtiens l'erreur suivante
2016/12/27 08:11:57 [error] 6#6: *4 no live upstreams while connecting to upstream, client: 172.17.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "http://googlesite/", Host: "localhost"
172.17.0.1 - - [27/Dec/2016:08:11:57 +0000] "GET / HTTP/1.1" 502 173 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0" "-"
J'ai essayé d'accéder à l'URL sur la machine hôte
(site HTML simple, page unique avec seulement du HTML simple, hébergé sur IIS avec un accès anonyme accordé à tous.)
curl localhost:8090
Obtention de l'erreur suivante:
curl: (7) Failed to connect to localhost port 8090: Connection refused
Je suis nouveau sur Docker et NGINX. Vous souhaitez savoir s'il est possible d'accéder aux URL sur la machine hôte? Si oui, alors où je me trompe.
La même configuration fonctionne, si j'utilise google.co.in au lieu de 127.0.0.1:8090.
Merci.
Dans un conteneur Docker, les localhost
et 127.0.0.1
fait référence au conteneur lui-même. Pour accéder à la machine hôte exécutant dockerd avec votre conteneur, vous devez faire référence à l'hôte par son nom d'hôte public/IP comme s'il s'agissait d'une autre machine sur le réseau.