助けが必要。この問題の解決策を試みており、答えを見つけることができなかったか、むしろ私はまったく遭遇しませんでした。
リバースプロキシとして機能する、NGINXを備えたdockerコンテナーがあります。 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でホストされているWebサイトのURLです。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にアクセスしようとしました
(シンプルなHTMLサイト、シンプルなHTMLのみを含む単一ページ、IISすべてに匿名アクセスが許可されています。)
curl localhost:8090
次のエラーを取得します。
curl: (7) Failed to connect to localhost port 8090: Connection refused
DockerとNGINXは初めてです。ホストマシンのURLにアクセスできるかどうかを知りたいですか?はいの場合、どこが間違っていますか。
127.0.0.1:8090の代わりにgoogle.co.inを使用すると、同じ構成が機能します。
ありがとう。
Dockerコンテナー内のlocalhost
および127.0.0.1
はコンテナ自体を指します。コンテナでdockerdを実行しているホストマシンにアクセスするには、ネットワーク上の別のマシンであるかのように、パブリックホスト名/ IPでホストを参照する必要があります。