curl: (7) Failed to connect to localhost port 8090: Connection refused

匿名 (未验证) 提交于 2019-12-03 00:50:01

问题:

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.

回答1:

Inside a docker container the localhost and 127.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.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!