2016-12-28 225 views
3

需要幫助。一直在嘗試解決這個問題,並且看不到答案,或者我沒有遇到任何問題。curl:(7)無法連接到本地主機端口8090:連接被拒絕

我有一個碼頭容器與NGINX,充當反向代理。 Docker for 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是在我的主機上的IIS上承載的網站的url。當我訪問NGINX的網址,我得到以下錯誤

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

試圖訪問主機

(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的新手。想知道是否有可能訪問主機上的URL?如果是,那麼我錯在哪裏。

如果我使用google.co.in而不是127.0.0.1:8090,則配置相同。

謝謝。

回答

10

在碼頭集裝箱內部,localhost127.0.0.1指的是集裝箱本身。爲了使用你的容器訪問運行docker的主機,你必須通過它的公共主機名/ IP來訪問主機,就好像它是網絡上的另一臺機器一樣。

+1

謝謝。有效。而不是使用本地主機,我使用主機名,它的工作很棒。修改後的配置細節如下: 'upstream mysite {server hostname:8090; }' 'server { listen 0.0.0.0:80; server_name localhost; 位置/ { proxy_pass http:// mysite; } }' –

相關問題