ホストシステムで動作する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アプリケーション自体に応答ヘッダーを設定したやり方とは何か関係があります。後者が当てはまる場合は、エラーコードが含まれた応答があり、応答を待つタイムアウトではないと思います。