Nginx负载均衡

原理:反向代理

作用

        将请求分摊给多个目标,首先需要一个转发者,根据不同服务器的优良程度进行合理分配,保证所有服务器将性能发挥到极致,保证服务器集群的整体性能最优,这便是负载均衡的作用

详情

        客户端通过反向代理发送请求,反向代理通过设置的某种负载均衡机制转发请求到目标服务器(这些服务器运行着相同的项目)把获得的内容返回给客户端,期间,代理请求根据配置被发往不同的服务器

流程

           客户端发送请求

           反向代理根据负载均衡机制转发请求到服务器

           转发期间根据配置发往不同的服务器

           在分配发往的服务器获得相应数据返回客户端

负载均衡算法

源地址哈希法(ip_hash):根据获取客户端的ip地址,通过哈希函数计算出一个数值,用该数值对服务器列表大小进行取模运算,得到结果便是客户端要访问的服务器序列号,通过源地址哈希法进行负载均衡,同一IP地址的客户端,当服务器列表不变时,每次映射同一服务器中进行访问

轮询法:将请求按照顺序轮流分配到服务器上,均衡对待每一台服务器,不关心服务器实际连接数和当前系统均衡

随机法:通过系统随机算法,根据服务器列表大小值来随机选取其中一台服务器进行访问

加权轮询法(weight):不同服务器配置和当前系统负载并不相同,抗压能力也不相同,给配置高、负载低的机器配置更高的权重,让其处理更多的请求,而配置低、负载高的机器,分配更少的权重,降低其系统负载,将请求顺序按照权重分配给不同的服务器

加权随机法:同加权轮询一样,根据服务器不同配置,不同的系统负载分配不同的权重,不同的是,加权随机是按照权重随机分配服务器

最小连接法:由于服务器的配置各不相同,对请求处理速度有快有慢,最小连接法根据服务器当前的连接情况,动态选取其中当前积压连接最少的一台服务器来处理当前请求,尽可能提升服务器的利用效率,将请求合理分配到每一台服务器

实现配置

#连接池的名称(ghost.com),绑定域名,访问域名进行不同权重值的分配
upstream ghost.com{ 
      #绑定服务器,根据服务器优良性分配权值
      #参数说明:ip,端口,分发策略
      server  110.40.220.80:1000 weight=10; 
      server  220.40.110.80:1000 weight=20; 
      server  40.80.110.200:1000 weight=30;
}

    
server{ 
    listen 80; 
    server_name ghost.com; 
    location / { 
        	#连接池名称
        	proxy_pass         http://ghost.com;
        	# 用户请求的时候HOST的值是dieqi.xyz, #那么代理服务会像后端传递请求的还是dieqi.xyz
        	proxy_set_header   Host             $host; 
        	# 将$remote_addr的值放进变量X-Real-IP中,$remote_addr的值为客户端的ip
        	proxy_set_header   X-Real-IP        $remote_addr; 
        	# 客户端通过代理服务访问后端服务, 后端服务通过该变量会记录真实客户端地址
        	proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
        } 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值