8-负载均衡配置—upstream模块

nginx作为反向代理服务器,一般需要把请求转发给内部网络的服务器集群,这里的负载均衡是指选择一种策略,尽量把请求平均的分发到每一台服务器,而nginx的upstream模块就可以完成向服务器集群的接收、处理和转发。

upstream模块配置说明:
1. 语法:upstream name { … }
2. upstream模块应该放于nginx.conf配置的http{ }标签内部。

upstream块配置了一个服务器集群,用于反向代理中的proxy_pass使用,下面是一个示例用法:

upstream proxy_server {
    #ip_hash;
    server 192.168.1.194:8080 weight=10;
    server 192.168.1.195:8080 max_fails=5 fail_timeout=10s;
    server www.test.com:8080 back;
}

server {

        listen       80;
        server_name  localhost;
        location / {
        proxy_pass http://proxy_server;
            root   html;
            index  index.html index.htm;
        }    
}

server:配置一台服务器名字,可以有多个服务器,一行一个。这个名字可以是域名,ip地址端口,端口不写默认是80,高并发场景下IP要换成域名,通过DNS做负载均衡。

weight:设置向这台服务器转发的权重,默认为1,权重越大则向这台服务器转发的请求几率越高。

max_fails=number : 最大尝试失败次数为number,默认为1,如果设置0则表示禁止失败尝试。max_fails与fail_timeout配合使用,如果当前服务器转发失败次数超过number,则认为当前服务器的fail_timeout时间内不可用。

fail_timeout=time : 尝试失败max_fails次数后,失败超时时间,默认10秒。在time时间内,转发次数失败number次后认为当前服务器不可用,用于优化反向代理功能。

down:表示这台服务器永久下线,只有在ip_hash配置时有效

backup:如果配置了ip_hash时,它是无效的,它表示服务器是备份服务器,只有在主服务器全部都失效了,才会转发请求。

注意:如果当前负载均衡调度算法为ip_hash时,服务器在负载均衡调度中的状态不能是weight和backup(相当于这两项无效)。

负载均衡算法默认是rr轮询:按客户端请求顺序把客户端的请求逐一分配到不同的后端服务器,这相当于LVS中rr算法,如果后端服务器宕机(默认只检测80端口,如果后端报错状态码:502,404,403,503,还是会直接返回给用户),宕机服务器会被自动剔踢出,用户访问不会受影响,请求会分配给正常的服务器。

weight(权重)
在轮询算法的基础上增加权重,即rr+weight,权重轮询和访问成正比,权重越大,转发的请求越多。可以根据服务器的配置和性能指标指定权重值大小,可以有效解决新旧服务器性能不均进行请求分配的问题。

ip_hash
每个请求按访问的ip的hash结果分配,当新的请求达到时,先将其客户端ip通过哈希算法算出一个值,在随后请求客户端,ip的哈希值只要相同,就会被分配至同一台服务器,因此该调度算法可以解决动态网页session共享问题,但有时会导致请求分配不均,即无法保证1:1的负载均衡(在国内大多数公司都是NAT上网,多个pc的ip对应一个公网ip)。

fair算法
比上面两个更加智能的算法,此算法可以根据页面大小和加载时间长短智能的进行负载均衡,按照后端的服务器响应时间来分配请求,也就是说服务器响应时间快的优先分配请求。这是一个第三方算法,nginx本身不支持fair算法,如果需要使用这种调度算法,必须下载nginx的upstream_fair模块。

upstream proxy_server {
    server 192.168.1.194;
    server 192.168.1.195;
    fair;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值