2017-12-06 17 views
1

セットアップ: すべての私のMac OS上で実行されている以下:異なるポートでlocalhostアプリケーションを認識するためのnginxドッカーコンテナの設定方法?

はlocalhost:8089 a nodejs REST api runing in my local, OUTSIDE of the nginx container, stand alone!

locahost:80 nginx docker container

私は、nginxのドッキングウィンドウ容器内の静的ファイルを提供することができたが、ときに私は何らかの理由で、に指示すると仮定どのlocalhost:80/apiコールのために

http { 
    server { 
     location/{ 
      root /usr/share/nginx/html; 
     } 
     location /api/ { 
      proxy_pass http://localhost:8089; 
     } 
    } 
} 

:としてnginxのための設定を設定します通話が戻る404が見つかりませんでしたページ

404 Not Found 

nginx/1.13.6 

どこで設定が間違っていますか?私はおそらく、私はlocalhost:8089をnginxの中で使うべきではないかと感じていますか?しかし、私は何を使用すべきですか?

例はこちら https://github.com/adamchenwei/docker-nginx-playground

答えて

1

コンテナが自身のネットワーキングのネームスペース/ネットワークスタックを持っています。したがって、コンテナ内のlocalhostは、コンテナ自体のローカルホストです。

Docker for Macを実行している場合は、ホスト自体で実行されているサービスに接続できるコンテナ内にある特別なホスト名があります。詳細については、この回答を参照してください。 https://stackoverflow.com/a/43541732/1811501

LinuxでDockerを実行している場合は、この回答(同じ質問)を使用して、接続先のIPアドレスを見つけることができます。 https://stackoverflow.com/a/31328031/1811501

関連する問題