相信负载均衡这个概念大家已经是经常有听说过,但是却不知道它的意思原理到底是什么?我们经常说的负载均衡,它的英文名称为LoadBalance,其意思就是分摊到多个操作单元上进行执行,比如常见的web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,目的就是共同完成工作任务,本文将会是为大家介绍一下nginx负载均衡的基础入门知识。
我们知道,nginx不单可以作为强大的web服务器,它也是可以作为一个反向的代理服务器,并且的话nginx还可以按照调度规则实现动态、静态页面的分离,同时还支持后端服务器的一个检查。如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了,它会自动剔除挂掉的服务器.
你必须了解清楚的Nginx负载均衡一些基础知识:
nginx的upstream目前支持4种方式的分配
(1)轮询(默认是这个分配方式)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
(2)weight
意思表示的是指定轮询几率,weight和访问比率成正比,它是用于后端服务器性能不均的情况。
(3)ip_hash
每个请求按访问ip的hash结果分配,这样的话每个访客固定访问一个后端服务器,可以解决session的问题。
(4)fair(第三方)
表示的是按后端服务器的响应时间来分配请求,按照响应时间短的一个优先分配。
(5)url_hash(第三方)
下面看看Nginx负载均衡实际例子:
upstreambbs.Linuxtone.org{#定义负载均衡设备的Ip及设备状态
server127.0.0.1:9090down;
server127.0.0.1:8080weight=2;
server127.0.0.1:6060;
server127.0.0.1:7070backup;
这个时候在需要使用负载均衡的server中增加:proxy_passhttp://bbs.linuxtone.org/;
其中每个设备的状态设置为:
a)down表示单前的server暂时不参与负载
b)weight默认为1.weight越大,负载的权重就越大。
c)max_fails:允许请求失败的次数默认为1.如果是超过最大次数时,返回proxy_next_upstream模块定义的错误
d)fail_timeout:max_fails次失败后,表示的是暂停的时间。
e)backup:其它所有的非backup机器down或者忙的时候,请求backup机器,因此这台机器的压力会是做小的。
nginx它是支持同时设置多组的负载均衡,用来给不用的server来使用。
client_body_in_file_only设置为On,可以将clientpost过来的数据记录到文件中用来做debugclient_body_temp_path设置记录文件的目录可以设置最多3层目录location对URL进行匹配.并且是可以进行重定向或者进行新的代理负载均衡。
以上是关于nginx负载均衡的简单的介绍,如果是出学者,或者理解起来有一点的困难,关于这个概念要想进一步的掌握还是需要花一点的时间去熟悉、理解。
上一篇:想做软件开发?SDK你了解吗?
下一篇:直销软件开发商的第二生命线介绍