nginx学习(4)Nginx 负载均衡

负载均衡:是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。

在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服 务,

而且 Nginx 提供了几种分配方式(策略):

Nginx高效负载均衡策略详解

1、轮询(默认)

按请求的时间顺序依次逐一分配,如果服务器down掉,能自动剔除。

typescript 复制代码
   upstream myserver {
        server 172.31.0.99:8083;
        server 172.31.0.99:8084;
    }

    server {
        listen       80;        
        #server_name  localhost;
       server_name  172.31.0.99 ;
        
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
           proxy_pass http://myserver;
            index  index.html index.htm;
        }

     
  1. 权重
    weight 越高,被分配的客户端越多,默认为 1。比如:
typescript 复制代码
   upstream myserver {
        server 172.31.0.99:8083  weight=5;
        server 172.31.0.99:8084  weight=10;
    }


172.31.0.99:8083是第一个服务器的地址和端口号,而weight=5表示该服务器的权重为5。权重可以用来确定在轮询中该服务器接收请求的频率。权重越高,该服务器接收的请求就越多。

172.31.0.99:8084是第二个服务器的地址和端口号,而weight=10表示该服务器的权重为10。与第一个服务器相比,这个服务器的权重更高,因此在轮询中它将接收更多的请求。

通过使用权重,你可以根据服务器的性能或负载能力来调整请求的分配比例。权重可以在多个服务器之间进行灵活的调整,以满足你的特定需求。 

3、 ip_hash

按请求 ip 的 hash 值分配,每个访客固定访问一个后端服务器。比如:

typescript 复制代码
   upstream myserver {
     ip_hash;	
        server 172.31.0.99:8083  ;
        server 172.31.0.99:8084  ;
    }
在upstream块中,列出了两个服务器,分别是172.31.0.99:8083和172.31.0.99:8084。因此请求将平均分配给这两个服务器。

通过使用ip_hash,可以实现基于客户端IP的负载均衡,使得来自同一IP地址的请求始终由同一台服务器处理。这种配置对于需要会话持久性或特定用户需要连接到同一服务器的应用场景非常有用。

4、fair

按服务器的响应时间来分配客户端请求,响应时间越短,分配客户端请求越多.

typescript 复制代码
upstream myserver {
    	fair; 
        server 172.31.0.99:8083  ;
        server 172.31.0.99:8084  ;
    }
相关推荐
小Mie不吃饭1 小时前
Linux | Ubuntu零基础安装学习cURL文件传输工具
学习
A懿轩A2 小时前
C/C++ 数据结构与算法【哈夫曼树】 哈夫曼树详细解析【日常学习,考研必备】带图+详细代码
c语言·c++·学习·算法·哈夫曼树·王卓
新中地GIS开发老师2 小时前
25考研希望渺茫,工作 VS 二战,怎么选?
javascript·学习·考研·arcgis·地理信息科学·地信
sensen_kiss2 小时前
CAN201 Introduction to Networking(计算机网络)Pt.3 网络层
网络·学习·计算机网络·智能路由器
朝九晚五ฺ2 小时前
【Linux探索学习】第二十四弹——软硬链接:Linux 中的软链接与硬链接详解
linux·运维·chrome·学习
虾球xz3 小时前
游戏引擎学习第64天
redis·学习·游戏引擎
虾球xz3 小时前
游戏引擎学习第63天
学习·游戏引擎
hao_wujing3 小时前
现代网络负载均衡与代理导论
运维·网络·负载均衡
朝九晚五ฺ3 小时前
【Linux探索学习】第二十三弹——理解文件系统:认识硬件、探索文件在硬件上的存储问题
linux·运维·学习
两水先木示4 小时前
【Unity3D】ECS入门学习(六)状态组件 ISystemStateComponentData
学习·unity·ecs