我创建了我的第一个Node.js应用程序,它由两个Express服务器组成,每个服务器都在另一个端口上监听。两个服务器实例具有不同端口的原因是因为一个服务器用于一般浏览器访问,另一个服务器实例是一个机器接口'嵌入式设备连接的服务器。
在Openshift上部署时,我了解到侦听端口必须是process.env.OPENSHIFT_NODEJS_PORT
。这没问题:我可以通过简单地使用一个服务器实例并使用路由来重新设计我的应用程序以应对这种情况,因为在这两种情况下都使用HTTP。
我很好奇以下几点:如果我选择创建一个需要监听非HTTP端口的Node.js应用程序,特别是如果它使用了我自己的一些专有TCP协议,那么我的选择是什么?是否大多数公共托管平台专门针对Web应用程序,我必须寻求专家/专用机器托管以支持任意端口?或者,我做错了?换句话说,部署一个侦听任意/非HTTP(S)端口的Node.js应用程序是不合常的吗?
有一个非常类似的问题被问到here,但答案只关注Websockets的主题。
答案 0 :(得分:2)
我认为您无法使用标准NodeJS盒式磁带执行此操作,但您可以使用不同的端口映射设置自己的盒式磁带,以向公共代理公开不同的端口。
查看“盒式磁带开发指南”,特别是第7部分。公开服务/ TCP端点:
https://docs.openshift.org/origin-m4/oo_cartridge_developers_guide.html#endpoints