gpt4 book ai didi

node.js - 用于将两个 Node.js 服务器映射到同一台机器上的相同地址的 nginx 配置

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:21 25 4
gpt4 key购买 nike

我正在运行两个 Node.js 服务器实例,在同一台计算机上的两个不同端口号上提供相同的代码。例如,一个 Node.js 进程在端口 8080 上运行,另一个进程在端口 1337 上运行。

我需要将 nginx 代理放在这两个服务器前面,并将任何请求路由到这些服务器。

我想这样做的原因是因为假设我只有一台服务器。我需要更改代码并重新启动服务器,并且服务器重新启动需要将近1分钟。在此期间,任何到达服务器的请求都将返回502 Bad Gateway Error。我想通过运行同一服务器的副本来避免这种情况。

现在我想以这样一种方式设置 nginx,只要其中一个宕机(在执行 git pull 时重新启动),请求就应该路由到另一个。

如何完成此设置以及我应该从哪里开始阅读相关内容?

最佳答案

要求:假设您有 2 个应用程序在同一台计算机的不同端口上运行。您只购买了一个域并希望将其用于多个应用程序。
假设以下是要求。购买的域名:example.com
app1_名称/app1_端口:app1/8081
app2_name/app2_port:app2/8082


这里有两个选择,您可以选择您喜欢的任何一个
第一种方式:http://example.com/app1、http://example.com/app2
第二种方式:http://app1.example.com、http://app2.example.com

以下是两种类型的最终配置
第一种类型使用 url 资源指示符和多个位置

server{
listen 80;
server_name example.com;
location /app1{
proxy_pass http://localhost:8081;
}
location /app2{
proxy_pass http://localhost:8082;
}
}

使用子域和多服务器 block 的第二种类型

server{
listen 80;
server_name example.com;
}
server{
server_name app1.example.com;
location /{
proxy_pass http://localhost:8081;
}
}
server{
server_name app2.example.com;
location /{
proxy_pass http://localhost:8082;
}
}

注意:理想情况下,nginx 应在端口 80 上运行,并应映射到主域。这样您就不必在浏览器中输入端口,因为 80 是 http 请求的默认端口。您可能需要添加额外的配置参数,以上仅用于演示目的。

关于node.js - 用于将两个 Node.js 服务器映射到同一台机器上的相同地址的 nginx 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com