2016-03-21 18 views
2

私は現在、1つのアプリケーション(Ruby on Rails)ともう1つのNginxをリバースプロキシとキャッシュとして1つのホスト上で2つのコンテナを実行しようとしています。アプリケーションはTCPポート80で動作しています。私ができるようにしたいのは、自分のアプリケーションコンテナを落としてそれを削除し、nginxを再起動しなくてもそれを再度起動することです。問題は、NginxはコンテナのIPを一度探すだけなので、別のアドレスに戻ってきたら、Nginxは何もないと不平を言うでしょう。実行時に解決するためにnginxの取得しようとする変数を使用しupstreamブロック Nginxでホスト名で動的にホスト名を検索する

  • を使用してドッカーのDNS
  • を使用するようにresolver 127.0.0.11 valid=5を使用し

    • 私はいくつかのことを試してみました。

    私はどこを見るべきかわかりませんが、アプリケーションが別のIPアドレスで起動されている場合は、これらのオプションは機能しません。これを不可能にしているものがありますか?

    ありがとうございました。

  • +1

    この問題が発生するには、DNSまたは検出サービスが必要か、アプリケーションコンテナに静的IPを使用する必要があります。最新のDockerバージョンを実行している場合は、この回答を参照してください。http://stackoverflow.com/a/35359185/4190526 –

    答えて

    1

    the 12 factor appでNginxのプロキシーリングを完全に削除し、代わりに外部DNS名の上流を持つプロキシキャッシュとして使用していたことがわかりました。

    関連する問題