The Nginx fair proxy balancer enhances the standard round-robin load balancer provided with Nginx so that it will track busy back end servers (e.g. Thin, Ebb, Mongrel) and balance the load to non-busy server processes.
fair是一个第三方Nginx-upstream负载均衡插件。upstream-fair 是比内建的负载均衡更加智能的负载均衡模块,fair模块会对全局的请求进行统计,并根据该服务器空闲状态,及处理过的请求及所有请求数、页面大小、加载时间长短智能的进行负载均衡。
本文将介绍Nginx集成upstream-fair的过程(本文假设Nginx已安装完成)。
0.1. 获取upstream-fair源码压缩包
进入upstream-fair项目官网: https://github.com/gnosek/nginx-upstream-fair ,选择下载适宜版本的压缩包至选定路径 ,如:
wget https://github.com/gnosek/nginx-upstream-fair/archive/master.zip
unzip master.zip
0.2. 重新编译安装Nginx
进入Nginx程序路径,输入 ./sbin/nginx -V
,查看并记录Nginx的configure参数:
在当前的配置参数之后追加 add-module 信息,将 nginx-upstream-fair-master
集成入配置参数,如:
--prefix=/usr/local/nginx --add-module=/usr/local/src/ngx_devel_kit-0.3.0 --add-module=/usr/local/src/lua-nginx-module-0.10.8 --add-module=/usr/local/src/nginx-upstream-fair-master
接下来进入Nginx安装文件路径,以上述configure参数重新make
cd /usr/local/src/nginx-1.11.3/
make clean
./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/ngx_devel_kit-0.3.0 --add-module=/usr/local/src/lua-nginx-module-0.10.8 --add-module=/usr/local/src/nginx-upstream-fair-master
make
make install
此时Nginx已成功集成ginx-upstream-fair 模块,在 nginx.conf
文件中可以对upstream做更多的均衡。
例:
0.2.1. nginx.conf(片段)
upstream www.vspnoa.tomcat_colony {
server localhost:8091;
server localhost:8092;
server localhost:8093;
server localhost:8090;
fair;
}
upstream www.vspnoa.tomcat_colony_socket_connection_server {
server localhost:8094;
server localhost:8095;
fair;
}
upstream www.vspnoa.tomcat_approve_process_colony {
server localhost:8096;
server localhost:8097;
fair;
}