【问题标题】:Node.js application listening on multiple ports hosted on Openshift侦听 Openshift 上托管的多个端口的 Node.js 应用程序
【发布时间】:2015-11-25 14:38:55
【问题描述】:

我创建了我的第一个 Node.js 应用程序,该应用程序由两个 Express 服务器组成,每个服务器侦听不同的端口。两个服务器实例具有不同端口的原因是因为一个服务器用于一般浏览器访问,另一个是嵌入式设备连接的“机器接口”服务器。

在Openshift上部署时,我了解到监听端口必须是process.env.OPENSHIFT_NODEJS_PORT。这没问题:我可以重新设计我的应用程序来解决这个问题,只需使用一个服务器实例并利用路由,因为在这两种情况下都使用 HTTP。

但是我对以下几点感到好奇:如果我选择创建一个需要侦听非 HTTP 端口的 Node.js 应用程序,特别是如果它使用我自己的一些专有 TCP 协议,那么我的选择是什么?大多数公共托管平台是否专门针对 Web 应用程序,我必须寻求专家/专用机器托管来支持任意端口?或者,我是否做错了?换句话说,部署一个侦听任意/非 HTTP(S) 端口的 Node.js 应用程序是否非常规?

here 提出了一个非常相似的问题,尽管答案只关注 Websockets 的主题。

【问题讨论】:

    标签: node.js


    【解决方案1】:

    我认为您无法使用标准 NodeJS 插件来执行此操作,但您可以使用不同的端口映射设置自己的插件,以向公共代理公开不同的端口。

    查看 Cartridge Development Guide,特别是第 7 节。公开服务/TCP 端点:

    https://docs.openshift.org/origin-m4/oo_cartridge_developers_guide.html#endpoints

    【讨论】:

    • 非常感谢您。在短期内,我通过使用路由解决了这个问题,但如果我的概念验证投入生产,那么很高兴知道我们可以使用端口。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    相关资源
    最近更新 更多