收藏
回答

云托管服务端口相关问题,如何转发tcp?


【场景】:我部署了一个提供websocket的服务,使用的是php语言,用的gatewayWorker,如果你熟悉 PHP的话你应该知道这个类库。该程序需要对外开放8282端口以及1238端口,8282端口是为了让客户端连接websocket,1238是为了让我们的另一人台mvc业务服务器注册到gatewayWorker上实现:客户端post消息到mvc, mvc连接云托管中的gatewayWorker用来发送消息。

【相关信息】:为了满足8282端口,1238端口的对完访问,所以我再服务容器里安装了nginx,容器对外暴露80,然后使用不同的域名路径访问80端口,分别转发到localhost的8282/1238端口。这一步正常,无任何问题。

【问题】:然而,gatewayWorker如果和mvc没有在同一服务器部署的话,gatewayWorker会根据情况启用多个端口以保证mvc顺利注册到gatewayWorker,目前我指定的是启用4各端口来实现,分别是2900,2901,2902,2903,问题来了,访问这四个端口的协议是tcp:// , 而非http://或ws:// , 因为没有做过tcp的转发,看了一下nginx的文档实在是没有搞清楚该如何通过监听80端口,来实现转发tcp请求到本机的2900端口。  


【问题总结】:因为云托管服务中运行的容器仅允许暴露一个端口,容器内运行的服务要对外提供http / tcp服务,http服务所用到的端口已经使用nginx反向代理根据不同的域名路径实现了正常访问,那么请问tcp该如何通过反向代理 根据不同的域名路径实现转发呢。拜托了


回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容
问题标签