水滴 纸条 2021-06-10 18:38 采纳率: 0%
浏览 138

多个node小程序进程都要走443端口怎么弄?

事情是这样的。我有小程序A和小程序B,他们需要部署在同一台服务器。他们都需要https,所以都走443端口。我用pm2工具管理他们,当我正常跑起小程序A,再去跑小程序B的时候,端口提示已占用(废话啊!肯定被你的小程序A占用了),那么就没办法同时启动他们!

所以我想到一些办法:

1.小程序B不走443端口,那么就出现一个问题:带ssl必须走443端口吗?(有待研究)。那么好的,先假设带ssl可以走其他端口,听说1024以下端口都基本被各种程序默认使用了,那么我取“10443”,“10444”,“10445”分别做测试,这样小程序B的接口就必须这样写:“https://test:10443/api”(示例),这也太难看了吧!好像也不是通俗做法,并且当我成功监听“10443”等等端口的时候,啥也没有。小程序请求超时,我试了多个端口都不行,看来这条“难看”的方法暂时走不下去。

2.利用pm2的cluster模式。因为我们一般使用pm2启动应用都是通过命令 “pm2 start main.js -n 小程序A” 种方法来启动的,启动后就是一个进程在那里。为了负载均衡,可以通过命令 “pm2 start main.js -i 3 -n 小程序A” 来启动3个或者其他数量个node进程,每个进程模式都是cluster。他们就是通用的一个443端口。那么,诶!你这不是可以用同一个端口吗?于是我就 “pm2 start main.js -i 1 -n 小程序A” ,“pm2 start main.js -i 1 -n 小程序B” ,直接搞两个不一样的进程共享443端口,但我还是年轻了啊!我发现cluster只是为了负载均衡用的,比如你小程序A项目启动了10个进程,当他监听到443端口有请求的时候,他会随机或者选择一个负载小的进程,把请求给它处理。那么,我!!!就差一步,要是能让他识别不同url,从而转发给不同的进程处理就完美了!这个办法走不下去了!

3.利用nginx代理,想法是小程序A监听444端口,小程序B监听445端口,nginx监听443端口,当监听到小程序A的url请求的时候,把请求转发到444端口。当监听到小程序B的url请求的时候,把请求转发到445端口。然后网上一大堆转发到路径的。。。我node又不是靠路径。所以nginx要怎么配置?有没有更轻量级的东西可以实现该效果?

在此,求援各位大佬:说说你们的看法吧!node后端需要大佬们的建设!!!

  • 写回答

4条回答 默认 最新

  • 关注

    是的,https 开头的都必须用443端口。

    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流