负载均衡:
一听这词很多小伙伴吓坏了,前人就喜欢搞一些看起来很高大上的词,好让后生望而敬畏.那我们一起来捋一捋. 负载就是负担. 均衡就是平均分.这样 一说就是负担平均分.
服务器也要减减压
我们都知道服务器是第三产业,服务行业,客户来了,你不能不服务.客户少还行,客户多了一台服务器就顶不住了,怎么办?我们找来多台服务器,让这些服务器去均分客户然后服务响应.或者让某些服务器只干一类时,来提高效率.
那么如何让我们的代理服务器知道哪些服务器是可以去干活的,而且擅长干什么活呢?这个时候就需要我们去配置了.
编辑nginx.conf文件(注意 upstream {} 配置信息必须在 Server {} 配置的外部,不是 Server {} 的里面)
upstream itbsl {# 服务器集群的组名 server 192.168.3.110:80 weight=1 max_fails=2 fail_timeout=30s; server 192.168.3.111:80 weight=1 max_fails=2 fail_timeout=30s; #server 服务器的ip:端口号 权重 最大失败次数 最大连接时间 }
说明:
- weight的值越大,表明这台服务器办事效率高,老板喜欢,有事了,找他的概率大.
- max_fails要说明的是,你找这台服务器办事,叫他2次如果还不理你,你不要对他报以希望了.
- fail_timeout要说的是,给这台服务器一件小事让它办,30s还没办完,算了,不靠谱,不要等了,找其他人吧.
Nginx中的几种负载均衡方式
- 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 - weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 - ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 - fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 - url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。