在同一台机器上运行多个唯一的 nodejs 网络服务器
Posted
技术标签:
【中文标题】在同一台机器上运行多个唯一的 nodejs 网络服务器【英文标题】:Multiple unique nodejs webservers running on the same machine 【发布时间】:2020-04-27 06:50:29 【问题描述】:我有几个网络服务器在一台机器上运行,目前,为了选择你想要服务的网站,你必须切换你正在连接的端口(域:8000,域:8001),但我真的不喜欢这个解决方案。我的目标是能够通过 domain/process1、domain/process2 进行连接,但是问题是 dns 总是要连接到 domain:80 然后通过路由来表达(我用于服务器的内容)
我知道我可以使用 express 来控制运行的代码
app.get('/process1', (req, res)=>
process1.getRequest(req, res);
next();
);
app.get('/process2', (req, res)=>
process2.getRequest(req, res);
next();
);
但是,这要求我的所有进程都在单个 nodejs 实例中运行。我希望不必修改我当前的任何网络服务器,只需创建一个新进程,该进程将在端口 80 上运行,并根据路由将流量重定向到不同的本地端口。
我见过This question,但是他们有多个域,而我只有一个域。 我还阅读了一些关于反向代理/nginx 的信息,如果可能的话,我很想留在 nodejs 中。是否可以在节点中创建我自己的反向代理?
【问题讨论】:
【参考方案1】:您可以拥有单个域,但仍可以使用像 nginx 这样的反向代理。
看看这篇文章https://medium.com/@samanbaboli/how-to-load-balancing-nodejs-apps-using-nginx-a3b4ceb7c782。
Ps:使用 nginx 不需要付费。 https://www.nginx.com/resources/wiki/
【讨论】:
很高兴知道 nginx 是免费的,但是对我来说,一个最佳的独奏将是我可以在我的机器上安装新服务的需要。我可以在 nodejs 中以某种方式创建自己的反向代理,还是使用 linux (ubuntu) 中的内置工具?以上是关于在同一台机器上运行多个唯一的 nodejs 网络服务器的主要内容,如果未能解决你的问题,请参考以下文章
具有不同.net版本的多个应用程序可以在同一台服务器机器上运行吗