NGINX:高级负载均衡器、Web 服务器和反向代理
📍并发性
👉 当需要向服务器发出请求时,通常会有多个用户同时发出请求。服务器需要处理所有这些请求。这时就需要考虑一些重要因素,例如:
🎯 分配负载的方法之一是使用软件负载均衡器。Nginx 正是在这种情况下发挥作用的。一般来说,Nginx 主要用作负载均衡器。尽管 Nginx 也可以用作邮件代理、反向代理、HTTP 缓存等。
🙋 但Nginx到底是什么?我们又该如何使用它呢?
📍 Nginx
Nginx 是一款 Web 服务器,每秒可处理约 1 万个并发用户或网络负载。它一度成为速度最快的 Web 服务器,其次是 Apache。
📍 如何使用 NGINX 设置负载均衡
👉注意:请关注我们以获取更多信息,因为我们将在未来的博客中看到负载均衡器、代理等在我们的 NodeJS 应用程序中的实现。
🙂 使用 Nginx,我们可以使用简单(轮询)、加权和最少连接数负载均衡。
我们将遵循以下步骤:
- 将使用简单的 Node API,并在两个 EC2 实例上运行(EC2 实例只不过是可以运行我们后端代码的虚拟服务器或机器)。
- 然后,我们将在第三个 EC2 实例或第三台机器上运行 Nginx。
- 然后我们将设置运行我们 Node 应用程序的两台 EC2 服务器之间的负载均衡。
😌注意:别担心,跟着做,你会受益匪浅。
-
创建一个 AWS 账户,不用担心,在超出免费限额之前,您可以免费使用。
-
现在,从主页进入亚马逊 EC2 服务,创建一个 EC2 实例(启动 EC2 实例)。
- 选择服务器的操作系统和名称
- 选择密钥对的 .pem 文件并将其保存到本地计算机。这里可以看到,我已经创建了两个 EC2 实例来运行两个服务器(我们的 NodeJS 应用程序)。
🙂注意:- 这里的公网 IP 地址是我们用来从本地计算机通过 SSH 连接到 EC2 虚拟机的地址(简单来说,SSH 就是您可以通过本地计算机的终端控制 EC2 虚拟服务器)。
- 现在,进入存放 pem 文件的目录。输入类似这样的命令,
ssh -i Server1.pem ubuntu@18.212.63.176其中 Server1.pem 是你在创建实例时保存的 pem 文件,ubuntu@public_ip 包含实例的公网 IP 地址。
chmod 0400 Server1.pem
注意:- 在运行上述命令之前,请先通过输入以下命令更改 pem 文件的权限:chmod 400 Server1.pem
- 现在,连接到您的 EC2 实例服务器,并将您的 NodeJS 应用程序部署到该服务器上。
- 我已在服务器 1 和服务器 2 上部署了 NodeJS 应用,如下所示:
用于负载均衡的NodeJS API代码:
🔥 注意:如果您的服务器在 EC2 实例中处于监听状态,但您无法从本地计算机终端连接到该服务器,请按以下步骤操作:
- 在 EC2 实例的 SSH 终端中输入 kill -9 节点
- 将 server.js 文件中的端口号更改为 80
-
- 现在,两个服务器分别运行 server_1.js 和 server_2.js,如下所示:
-
现在,我们将在第三个 EC2 实例上设置 Nginx Web 服务器(作为负载均衡器)。
-
启动新的 EC2 实例并 在您的 Ubuntu EC2 系统中安装 Nginx 。
-
现在,在这个新的 EC2 实例中,安装完 Nginx 后,进入/etc/nginx/conf.d目录,创建一个名为lb.config的文件。
-
在文件中输入内容:
-
这里,endpoint1 是您可以指定的名称,并且该名称必须出现在 location 块中。这里的 servers 是我们输入的 EC2 实例的私有 IP 地址。
-
这是简单的负载均衡(轮询),意味着第一个请求将路由到服务器 1,第二个请求将路由到服务器 2,依此类推……
现在,您可以通过浏览器 URL 访问 Nginx EC2 实例的公网 IP 地址,它会发出请求,例如第一个请求会路由到服务器 1,第二个请求会路由到服务器 2,依此类推……
🎯希望大家喜欢这篇关于使用 Nginx 进行负载均衡的教程。 关注我,获取更多实用教程。
🙂接下来我们将推出更多围绕核心主题的优质内容。
文章来源:https://dev.to/singhdevhub/nginx-advanced-load-balancer-web-server-reverse-proxy-4i23











