curl: (7) 无法连接到本地主机端口 8090:连接被拒绝

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

需要帮助。一直在尝试解决此问题,但看不到答案,或者我还没有遇到任何答案。

我有一个带有 NGINX 的 docker 容器,用作反向代理。 Docker 对于 Windows 版本 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;
    }
}

在上面的代码中,localhost:8090 是 url 托管在我主机上 IIS 上的网站。当我在 NGINX 上访问 url 时,出现以下错误

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" "-"

试图访问主机

上的 url

(simple HTML site, single page with only simple html, hosted on IIS with anonymous access granted to all.)

curl localhost:8090

出现以下错误:

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

我是 Docker 和 NGINX 的新手。想知道是否可以在主机上访问 urls?如果是,那我哪里错了。

如果我使用 google.co.in 而不是 127.0.0.1:8090,同样的配置也有效。

谢谢。

在 docker 容器中,localhost127.0.0.1 指的是容器本身。为了使用您的容器访问主机 运行 dockerd,您必须通过其 public hostname/IP 引用主机,就好像它是网络上的另一台机器一样。