2016-10-06 10 views
0

私のサーバー上のサービスをドッカーと適切に分ける方法がわかりません。 NodeJSで書かれたアプリケーションと、PHPで書かれた2つのアプリケーションがあります。私はウェブサーバ/リバースプロキシとしてNGINXを使用し、データベースとしてMySQLを使用します。私はどのドッカーコンテナがどのタスクを処理し、アプリケーションファイル(js、php、cssやjpgのような静的コンテンツ)をどこに格納するのかはわかりません。ドッカーサービスの分離


私は以下のオプションを念頭に置いています(MySQLコンテナの除外)。各矩形はドッカー画像です( 'Server'と 'Server FS'の矩形を除く)。

オプション1:静的コンテンツを処理し、PHP-FPMおよびNodeJSにリクエストを渡すNGINXコンテナ1つ。アプリケーションファイルは、ドッカー画像にマウントされます。

Option 1

オプション2:つnginxのコンテナは異なるサービスをバンドルリバースプロキシとして動作します。各アプリケーションは独自の構成(ルートの書き換えや静的コンテンツの処理など)を処理するため、アプリケーション自体の移植性が向上します。

Option 2

オプション3:nginxのウェブサーバとPHP-FPMモジュール一枚のドッカー画像に含まれる各PHPアプリケーションのためのオプション2とリバースプロキシとしてつnginxの容器作用します。

Option 3

オプション4:リバースプロキシとして再び働く一つnginxのコンテナ。アプリケーションファイルは、それぞれのドッカー画像内にバンドルされています。

enter image description here


ドッキングウィンドウのイメージにサービスを分離する方法がベストプラクティスはありますか?オプション4は、アプリケーションファイルが画像に含まれているため、最も移植性が高く、最も簡単に展開できます。オプション1〜3は、ファイルが変更されるたびにイメージを再構築する必要がないため、開発に使用する方が簡単です。オプション3は私にとって最良の選択肢ですが、ドッカーコンテナには1つのサービス(PHP-FPM または NGINX)のみが含まれている必要があります。

ベストプラクティスがありますか、それともそれをどのように処理したいと思うかは、誰もが自分の判断で決まりますか?私はあなたの経験について知りたいです。

+0

多くの良い質問は、専門家の経験に基づいてある程度の意見を生成しますが、この質問に対する回答は、事実、参考文献、または特定の専門知識ではなく、概ね意見に基づいている傾向があります。 *これはStack Overflow *に関する質問を閉じる理由です。私は一般的な問題を解決するための開発フォーラム(おそらく[Quora](http://www.quora.com/Computer-Programming))を見つけることをお勧めします。次に、特定のコーディング上の問題がある場合は、StackOverflowに戻ってください。お手伝いします。 –

+0

@JayBlanchard私は同意しません。この質問は明確な図式で本当にうまく表現されています。私はそれがSOを探している人々に役立つだろうと確信しています。 SOの質問のほとんどは、すでに「これを実行する最良の方法は何か」というタイプのものです。回答は通常経験に基づいています。 – Alkaline

+0

"これを行うにはどうすればよいですか?" Stack Overflowに関する質問が長い間議論されてきました。当然のことながら、これらの種類の質問は、意見に基づいた回答を持っていると考えられています。これはStack @Alkalineの特定の緊密な理由です。Stackの質問の多くは、より具体的であり、ハウツーよりもコーディングの問題を検討します。 –

答えて

0

あなたは、私はそれはあなたが水平方向(nodejs、PHP-FPM)、あなたのサービスを拡張するために、それはいくつかのフェールオーバーを提供することができますことができます図1.

を示唆した生産システムを目指している場合。それはまた、SwarmやKubernetesのようなクラスタマネージャを使って構築される方法です。あなたのシナリオでは、ホストごとに複数のnginxは必要ありません。