Openshift node.js部署成功,但“应用程序不可用”

ctrmrzij  于 2022-11-22  发布在  Node.js
关注(0)|答案(1)|浏览(152)

我在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);

pull和build工作正常。我可以在pod终端中看到我的应用正在运行,因为有一些console.log输出表明这一点。我还可以看到process.env.OPENSHIFT_NODEJS_IPprocess.env.IP都不存在,因此端口默认为8080
如果我进入pod的终端并执行curl http://localhost:8080,我会看到我的应用程序所期望的html输出。
然而,当我点击概述选项卡并找到我的应用程序的外部URL(格式为http://<application>-<domain>.1d35.starter-us-east-1.openshiftapps.com)时,点击该链接会导致openshift的“Application is not available”错误页面。
在我看来,我的节点应用程序运行得很好,但没有连接到外部url。我怀疑8080不是正确的端口,我需要做更多的配置,以便我的nodejs应用程序在process.env.OPENSHIFT_NODEJS_PORT接收值。
在其他stackoverflow的答案中,我也看到了0.0.0.0作为默认值,而process.env.OPENSHIFT_NODEJS_IP没有被设置。

总的来说,我如何才能使外部url链接到我的nodejs服务器?

谢谢你的帮助!

nbnkbykc

nbnkbykc1#


应用〉服务,
单击您服务,
单击操作〉编辑YAML,
在端口部分中,
将port和targetPort更改为nodejs应用程序运行的端口,
在我例子中,它位于端口8000上,
所以我就这样给了

port: 8000
protocol: TCP
targetPort: 8000

此外,检查应用程序是否在“www.example.com“上运行0.0.0.0,而不是在“127.0.0.1“上运行

相关问题