如何使用Nginx作为应用程序的负载均衡器?

描述

Nginx因其高性能和可扩展性而广受欢迎。它是排名第一的开源Web 服务器。在本教程中,我们将学习如何使用Nginx作为应用程序的负载均衡器?

要将nginx负载平衡配置为先决条件,我们需要至少有两台主机安装并配置了Web服务器软件,才能看到使用nginx进行负载平衡的优势。如果我们已经设置了一个正在运行的Web主机,则通过创建自定义图像复制它并将其部署到新的Web服务器上。下面是使用Nginx作为应用程序的负载均衡器分步指南:

一、Nginx网络服务器
Nginx是一种高性能的开源Web服务器。除了HTTP服务器功能外,NGINX 还可以充当电子邮件(IMAP、POP3 和 SMTP)的代理服务器和反向代理,并为 HTTP、TCP 和 UDP 服务器负载均衡nginx。它提高了应用程序的性能、可靠性和安全性。它以其丰富的功能集、简单的配置和低资源消耗而广受欢迎。
Nginx是如何工作的?Nginx通常用作nginx反向代理负载平衡器,作为在多个独立服务器上工作的分布式Web应用程序的单一入口点。它使用异步、事件驱动的方法来提供低内存使用率和高并发性。

二、负载均衡器
负载平衡是在多个服务器之间分配网络流量的过程。执行此分发过程的“软件”或“硬件”称为负载均衡器。负载均衡器就像站在服务器前面的“交通警察”,并在所有服务器之间路由客户端请求。它确保即使其中一台服务器出现故障,我们的应用程序仍能正常运行。
负载均衡器的主要功能如下:
1、跨多个服务器有效地分配客户端请求或网络负载;
2、通过仅向在线服务器发送请求来确保高可用性和可靠性;
3、提供根据需求添加或减少服务器的灵活性。

三、将Nginx设置为负载均衡器
在设置Nginx轮询负载平衡之前,我们应该在服务器上安装Nginx。我们可以使用apt-get快速安装它:sudo apt-get install nginx
为了设置循环负载均衡器,我们需要使用Nginx上游模块。我们会将 nginx负载均衡器配置更新到Nginx设置中。让我们打开我们网站的配置。为了这个例子,使用默认的配置文件
sudo vi /etc/nginx/sites-available/default
我们需要将负载均衡配置添加到文件中,以使用nginx配置负载均衡器。
首先,我们需要包含用于nginx上游负载平衡的上游模块,如下所示:
upstream backend  {
 server backend1.example.com;
 server backend2.example.com;
 server backend3.example.com;
}
使用此后端上游作为服务器块中的代理端点:
server {
 location / {
   proxy_pass  http://backend;
 }
}
重启Nginx
sudo service nginx restart
只要所有服务器就位,我们现在应该会发现nginx开源负载均衡器将开始将访问者平均分配到服务器,这种平均分配称为循环负载平衡。

四、上游指令
在我们的最后一个例子中,我们使用了一个简单的上游模块来进行循环负载平衡,以在服务器之间平均分配流量。然而,这可能不是处理流量的最有效方式的原因有很多。我们可以使用多种指令来更有效地引导网站访问者。
1、重量
开始更精确地将用户分配给服务器的一种方法是为某些机器分配特定的权重。Nginx允许我们分配一个数字,指定应定向到每个服务器的流量比例。包含服务器权重的负载平衡设置可能如下所示:
upstream backend  {
 server backend1.example.com weight=1;
 server backend2.example.com weight=2;
 server backend3.example.com weight=4;
}
默认权重为1。权重为2时,backend2.example将发送两倍于backend1 的流量,而权重为4的backend3将处理两倍于backend2和四倍于 backend的流量1.
2、散列
IP哈希允许服务器根据他们的IP地址响应客户端,每次访问时将访问者发送回同一个VPS(除非该服务器已关闭)。如果已知服务器处于非活动状态,则应将其标记为关闭。所有应该路由到故障服务器的 IP都被定向到备用服务器。下面的配置提供了一个示例:
upstream backend {
 ip_hash;
 server   backend1.example.com;
 server   backend2.example.com;
 server   backend3.example.com  down;
}
3、最大失败
根据默认的循环设置,Nginx应用程序负载均衡器将继续向虚拟专用服务器发送数据,即使服务器没有响应。Max failure可以通过使无响应的服务器在一定时间内无法运行来自动防止这种情况发生。
有两个因素与最大失败有关:max_fails和fall_timeout。最大失败次数是指在服务器被视为不活动之前应该发生的连接到服务器的最大失败尝试次数。Fall_timeout指定服务器被视为不工作的时间长度。一旦时间到期,新的到达服务器的尝试将再次启动,默认超时值为10秒。示例配置可能如下所示:
upstream backend  {
 server backend1.example.com max_fails=3  fail_timeout=15s;
 server backend2.example.com weight=2;
 server backend3.example.com weight=4;
}

以上是使用Nginx作为应用程序的负载均衡器四个步骤,希望能帮助到大家!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分