Need help. Have been trying for a solution to this issue and could not see an answer or rather I have not come across any.
I have a docker container with NGINX, acting as a reverse proxy. Docker for 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;
}
}
In the above code localhost:8090 is a url of a website that is hosted on IIS on my host machine. When I access the url on NGINX, I get the following error
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" "-"
Tried to access the url on the host machine
(simple HTML site, single page with only simple html, hosted on IIS with anonymous access granted to all.)
curl localhost:8090
Getting the following error:
curl: (7) Failed to connect to localhost port 8090: Connection refused
Am new to Docker and NGINX. Would like to know if it is possible to access urls on the host machine? If Yes, then where am I wrong.
The same configuration works, if I use google.co.in instead of 127.0.0.1:8090.
Thanks.
Inside a docker container the
localhost
and127.0.0.1
refer to the container itself. In order to access the host machine running dockerd with your container you must refer to the host by its public hostname/IP as if it was another machine on the network.