实现负载均衡
Nginx能够十分方便的实现软负载均衡功能,而且性能非常不错,我们这里演示一个例子。
配置基本的负载均衡
upstream www.example.com {
server 192.168.1.108:8081;
server 192.168.1.108:8090;
}
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://www.example.com;
}
}
- 192.168.1.108:8081 应用服务器1
- 192.168.1.108:8090 应用服务器2
上面代码中,我们配置了一个upstream
,其中的内容就是负载均衡背后,应用服务器节点的各个地址。在server
中,我们通过proxy_pass
反向代理应用服务器集群,这样就实现了一个最简单的负载均衡。如果一个节点失效,Nginx是能够感知到的,并通过一定的算法逐步剔除该节点。
其实Nginx默认的节点失效剔除还是对用户具有一定的影响,解决这个问题最好的办法是使用心跳检测,这需要Nginx扩展支持,心跳检测并不复杂,很多人都造过这个轮子。
配置负载均衡策略
默认情况下,负载均衡策略是轮询,每个后端服务器会被均匀的轮流访问。除此之外,还有几种其它策略:
- least_conn:访问次数最少的节点下次将被访问
- weight:根据设定的权重,分配节点被访问的比例
- ip_hash:根据请求者IP,将同一个IP分配到同一个节点上,不常用
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。