我在使用Openshift运行node.js应用程序时遇到问题。
我已经将我的openshift项目设置为从git repo中提取。
我的server.listen
电话是这样的:
var port = process.env.OPENSHIFT_NODEJS_PORT || process.env.PORT || 8080;
var ip = process.env.OPENSHIFT_NODEJS_IP || process.env.IP || '127.0.0.1';
var server = http.createServer(myServerFunction);
server.listen(port, ip);
拉动和构建工作正常。我可以在pod终端中看到我的应用程序正在运行,因为有一些console.log
输出表明这一点。我还可以看到process.env.OPENSHIFT_NODEJS_IP
和process.env.IP
都不存在,因此端口默认为8080
。
如果我进入pod的终端并执行curl http://localhost:8080
,我会看到我希望从我的应用程序中获得的html输出。
但是,当我单击概述选项卡并找到我的应用程序的外部网址(格式为http://<application>-<domain>.1d35.starter-us-east-1.openshiftapps.com
)时,单击该链接会导致openshift的“应用程序不可用”错误页面。
在我看来,我的节点应用程序运行得非常好,但没有连接到外部URL。我怀疑8080
不是正确的端口,并且我需要进行更多配置才能使我的nodejs应用程序在process.env.OPENSHIFT_NODEJS_PORT
接收值。
在其他stackoverflow答案中,我还看到0.0.0.0
作为未设置process.env.OPENSHIFT_NODEJS_IP
时的默认值。这会有所作为吗?
总体而言,如何将外部网址链接到我的nodejs服务器?
感谢您的帮助!
答案 0 :(得分:1)
前往
应用 > 服务,
点击您的服务,
单击操作 > 编辑 YAML,
在端口部分,
将 port 和 targetPort 更改为您的 nodejs 应用程序正在运行的端口,
就我而言,它在端口 8000 上,
所以我给了这样
port: 8000
protocol: TCP
targetPort: 8000
另外,检查应用程序是否在“0.0.0.0”上运行,而不是“127.0.0.1”