Nginx负载均衡

注意,Nginx负载均衡都需要走反向代理走流量,因此均会有单点故障的风险。
如果和DNS解析一起使用的话,可以缓解该问题,即将一个域名指向多个IP(域名解析配置的时候多建几个A类型的IP解析即可),DNS解析默认采用轮询的方式来分发请求到不同的服务器。

一、Nginx简介

Nginx是一个高性能的HTTP服务器和反向代理服务器。它起初是俄罗斯人Igor Sysoev开发的,至今支撑者俄罗斯的很多大型的网站。

二、Nginx支持的三种负载均衡策略

轮询 : 将请求依次轮询发给每个服务器。
最少链接: 将请求发送给持有最少活动链接的服务器。
IP哈希 : 通过哈希函数决定请求发送给哪个服务器(常用对用户SESSIONID进行哈希,以便同一用户访问同一台服务器)。
权重 : 服务器的权重越高,处理请求的概率越大。

三、轮询负载均衡

在nginx.conf配置文件中添加如下配置,此配置有三台服务器提供支付服务。

需要注意以下几点
1、缺省配置就是轮询策略;
2、nginx负载均衡支持http和https协议,只需要修改 proxy_pass后协议即可;
3、nginx支持FastCGI, uwsgi, SCGI,memcached的负载均衡,只需将 proxy_pass改为fastcgi_pass, uwsgi_pass, scgi_pass,memcached_pass即可。
4、此策略适合服务器配置相当,无状态且短平快的服务使用。

四、最少链接负载均衡

需要注意以下几点
1、最少链接负载均衡通过least_conn指令定义;
2、此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况;

五、IP哈希负载均衡

需要注意以下几点
1、ip哈希负载均衡使用ip_hash指令定义;
2、nginx使用请求客户端的ip地址进行哈希计算,确保使用同一个服务器响应请求;
3、此策略适合有状态服务,比如session;

六、权重负载均衡

需要注意以下几点
1、权重负载均衡需要使用weight指令定义;
2、权重越高分配到需要处理的请求越多;
3、此策略可以与最少链接负载和ip哈希策略结合使用;
4、此策略比较适合服务器的硬件配置差别比较大的情况;

七、健康检测

Nginx内置了针对服务器的健康检测机制,如果特定服务器请求失败,则Nginx即可进行标记待下次就不会请求分配给它。max_fails 定义失败指定次数后进行标记服务器不可用。

 

 

Leave a Reply

Your email address will not be published.