我在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_IP
和process.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服务器?
谢谢你的帮助!
1条答案
按热度按时间nbnkbykc1#
到
应用〉服务,
单击您服务,
单击操作〉编辑YAML,
在端口部分中,
将port和targetPort更改为nodejs应用程序运行的端口,
在我例子中,它位于端口8000上,
所以我就这样给了
此外,检查应用程序是否在“www.example.com“上运行0.0.0.0,而不是在“127.0.0.1“上运行