2017-02-01 17 views
0

ホストシステムで動作するRestifyを使用してノードにRESTサービスを作成し、カートリッジにssh接続しても機能します。しかし、このサービスを遠隔から呼び出そうとすると、サービスにアクセスできません(ブラウザでは、「このサイトには到達できません」というエラーが表示されます)。OpenShift Node RESTサービスのエラー「このサイトにアクセスできない」

私は実際に同時に2つのアプリケーションを実行しています。 Oneは、Expressを使用して動的なWebページを提供し、別のポートで実行されているRESTサービスを呼び出すExpressアプリケーションです。

Webページは、RESTサービスにアクセスしようとする場合を除いて正常に動作します。これは、構成されたOPENSHIFT_NODEJS_IPポートを使用しています。 RESTサービスは指定したポートを使用しています:8097.

シンプルなテストのために、簡単なステータスで応答する残りのエンドポイントを作成しました。カートリッジ上のSSHセッションで、私はこれを入力し、この結果を見ることができますが:

curl 52.87.189.180:8097/status 
curl: (7) Failed to connect to 52.87.189.180 port 8097: Operation timed out 

curl http://${NODE_IP}:8097/status 
"{status: 'ok'}" 

しかし、私のホストシステム上に、私はカートリッジに割り当てられたパブリックIPアドレスを使用して、このアドレスをカールすることはできません

は、私は、Webアプリケーションをカールとを介して取得することができる午前:

curl 52.87.189.180 

は、私がどこかでHAプロキシは、Web-バランスの取れたアプリケーションのための問題であることについて読んで、私は今のことはありません。私のアプリケーションは、MongoDBと共に単純なNodeJSカートリッジです。 RESTサーバーは正しくローカルで機能し、CORSに対して有効になり、OpenShift環境変数を使用して接続を構成します。ここでは、ポートは次のとおりです。

lsof -l 
COMMAND PID  USER FD TYPE DEVICE  SIZE/OFF NODE NAME 
mongod 22936  3389 11u IPv4 518405103 0t0  TCP 127.6.158.130:27017 (LISTEN) 
node 23028  3389 11u IPv4 518408054 0t0  TCP 127.6.158.129:8097 (LISTEN) 
node 23028  3389 12u IPv4 518408056 0t0  TCP 127.6.158.129:8080 (LISTEN) 

だから私の質問は、外の世界から、残りのアプリケーションにアクセスするから私を何を停止することができますか?

編集2017年2月1日:

これは面白いです。私は、ポート転送を見上げ、私のホストシステムからこれを試してみました:

rhc port-forward -a myappname 

は、今私はhttp://localhost:8097に私のRESTサービスに接続するローカルことができますよ。上記の私のカールコマンドは、リモートIPアドレスにlocalhostを代入するときに機能し、RESTクライアント(私はPostmanを使用しています)を使用してエンドポイントをテストすることができます。

外部アクセスをブロックする何らかの種類のファイアウォールルールが必要です。あるいは、RESTアプリケーション自体に応答ヘッダーを設定したやり方とは何か関係があります。後者が当てはまる場合は、エラーコードが含まれた応答があり、応答を待つタイムアウトではないと思います。

答えて

0

これはOpenShiftのやり方については何の反応も見られないので、私はこれをプログラムで行う方法を考え出しました。 Githubの私のsolutionを見てください。

関連する問題