2016-10-18 8 views
0


私はOSE 3を学んでいます。私が作成した2つのNode.js Webアプリケーションを配備したいと思います。そこで、2つのNode.jsデプロイメントを持つプロジェクトを作成しました。これは現在、独自のポッドで実行されています。 私の質問は、どのように通信することになっていますか?例えば、あるアプリケーションが他のアプリケーションにリダイレクトする必要がある、または他のアプリケーションのコンポーネントを含める必要があるとします。 各アプリケーションのルートを設定ファイルなどでハードコードする必要がありますか? ありがとう!Openshift 3配備間の通信

答えて

1

2つのサービス間の内部通信については、接続時にサービスの名前をホスト名として使用できます。これは可能です。サービスの名前が内部DNSサーバーに追加され、その名前のホスト名参照がその時点でサービスの正しいIPを生成するためです。サービスに複数のポッドがある場合、内部のIPロードバランサは要求をポッドの1つに自動的にルーティングします。

リダイレクトについての質問では、両方のサービスを公開し、あるサービスがHTTPクライアントを他のサービスに向かうURLにリダイレクトするHTTP応答を返すようにしたいと考えられます。リダイレクトURLは、どのようにサービスを公開しているかによって異なります。つまり、各サービスが別のホスト名として公開されているか、OpenShiftのパスベースのルーティングを使用して、同じホストの別のサブURLに1つをオーバーレイするかどうかです。

どちらの場合でも、リダイレクトをトリガーするサービスに対して、展開設定で渡された環境変数を使用して、リダイレクト先のURL接頭辞を教えてください。手動でこれを設定します。これは、少なくともコード内でハードワイヤード接続していないことを意味します。

リダイレクトによって他の何かを意味する場合は、意味をよりよく説明する必要があります。

+0

詳細な回答ありがとうございます。あなたが言及した最初のケ​​ースを示すサンプルコード/チュートリアルはありますか? (サービスをホスト名として使用する)。 – Carla

+0

OpenShiftのサービス名は何ですか?その名前をコードのホスト名、ソケットに接続するためのアドレスのホスト名、またはHTTPを使用している場合はURLの一部として使用します。あなたのコードがどのように書かれているか分からないので、他に何が説明できるか分からない。 –