Nginx负载均衡策略之fair介绍

fair

fair采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小、加载时间长短智能的进行负载均衡。那么如何使用第三方模块的fair负载均衡策略。

upstream backend{
	fair;
	server 192.168.200.146:9001;
	server 192.168.200.146:9002;
	server 192.168.200.146:9003;
}
server {
	listen 8083;
	server_name localhost;
	location /{
		proxy_pass http://backend;
	}
}

但是如何直接使用会报错,因为fair属于第三方模块实现的负载均衡。需要添加nginx-upstream-fair,如何添加对应的模块:

  • 下载nginx-upstream-fair模块

下载地址为:
	https://github.com/gnosek/nginx-upstream-fair
  • 将下载的文件上传到服务器并进行解压缩
unzip nginx-upstream-fair-master.zip
  • 重命名资源
mv nginx-upstream-fair-master fair
  • 使用./configure命令将资源添加到Nginx模块中
./configure --add-module=/root/fair
  • 编译
make

编译可能会出现如下错误,ngx_http_upstream_srv_conf_t结构中缺少default_port

Nginx负载均衡策略之fair介绍

解决方案:

在Nginx的源码中 src/http/ngx_http_upstream.h,找到ngx_http_upstream_srv_conf_s,在模块中添加添加default_port属性

in_port_t	   default_port

 Nginx负载均衡策略之fair介绍

然后再进行make.

  • 更新Nginx

  • ​ 将sbin目录下的nginx进行备份
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginxold
  • 将安装目录下的objs中的nginx拷贝到sbin目录
cd objs
cp nginx /usr/local/nginx/sbin
  • 更新Nginx
cd ../
make upgrade
  • 编译测试使用Nginx

上面介绍了Nginx常用的负载均衡的策略,有人说是5种,是把轮询和加权轮询归为一种,也有人说是6种。那么在咱们以后的开发中到底使用哪种,这个需要根据实际项目的应用场景来决定的。

上一篇:hadoop 问题记录之hadoop


下一篇:Linux三剑客之awk精讲(基础与进阶)