【问题标题】:OpenShift Node REST Service error "This site can’t be reached"OpenShift 节点 REST 服务错误“无法访问此站点”
【发布时间】:2017-02-01 04:18:57
【问题描述】:

我有一个使用 Restify 在 Node 中编写的 REST 服务,它可以在我的主机系统上运行,并且如果我通过 ssh 连接到盒式磁带中就可以工作。但是当我尝试远程调用此服务时,无法访问该服务(在浏览器上我收到“无法访问此站点”错误)。

我实际上同时运行两个应用程序。一个是使用 Express 提供动态网页的 express 应用,并调用在另一个端口上运行的 REST 服务。

除了尝试访问 REST 服务时,该网页工作正常。它正在使用配置的 OPENSHIFT_NODEJS_IP 端口。 REST 服务正在使用我指定的端口:8097。

对于一个简单的测试,我创建了一个响应简单状态的休息端点。在墨盒上的 SSH 会话中,我可以输入以下内容并查看以下结果:

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

但在我的主机系统上,我无法使用分配给磁带的公共 IP 地址来卷曲此地址:

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

我能够 curl 网络应用程序并通过:

curl 52.87.189.180

我在某处读到关于 HA 代理是 Web 平衡应用程序的问题,但我现在没有。我的应用程序是一个简单的 NodeJS 墨盒以及 MongoDB。 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 服务。将 localhost 替换为远程 IP 地址时,我上面的 curl 命令有效,并且我可以使用 REST 客户端(我正在使用 Postman)来测试我的端点。

一定有某种防火墙规则阻止了外部访问,或者可能与我在 REST 应用程序本身中设置响应标头的方式有关。如果是后者,我认为会有某种包含错误代码的响应,而不是等待回复的超时。

【问题讨论】:

    标签: openshift


    【解决方案1】:

    由于我没有看到有关如何通过 OpenShift 方式完成此操作的任何回复,因此我想出了如何以编程方式执行此操作。在 Github 上查看我的 solution

    【讨论】:

      猜你喜欢
      • 2017-12-07
      • 1970-01-01
      • 2016-07-06
      • 2020-01-07
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      相关资源
      最近更新 更多