学习在 Nginx 中使用 fair 模块(第三方)来实现负载均衡,fair 采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小、响应时间智能的进行负载均衡

1 准备工作

  • nginx-upstream-fair 官方下载地址:https://github.com/gnosek/nginx-upstream-fair
  • 版本问题:如果使用的 Nginx 版本 >= 1.14.0 时,使用上述模块源码编译时会报错误,需要对源码做一些修改,参考:https://github.com/gnosek/nginx-upstream-fair/pull/27/commits/ff979a48a0ccb9217437021b5eb9378448c2bd9e 。也可以直接下载已经修改好的源码包:https://files.cnblogs.com/files/ztlsir/nginx-upstream-fair-master.zip

2 配置

  • 上传 nginx-upstream-fair-master.zip
  • 解压到 /usr/local 目录下。
unzip nginx-upstream-fair-master.zip
  1. 未安装过 Nginx

具体安装步骤参考: Nginx 安装 - Linux

# 只需要在 ./configure 时额外增加 fair 模块
--add-module=/usr/local/nginx-upstream-fair-master
  1. 已安装过 Nginx

如果已经安装过 Nginx ,又不想重新安装,则可以单独添加 fair 模块。

# 关闭 Nginx
/usr/local/nginx/sbin/nginx -s stop# 查看 Nginx 安装时的配置参数,复制备用
/usr/local/nginx/sbin/nginx -V
# configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module ...# 进入 nginx-1.16.1 目录
cd /usr/local/nginx-1.16.1# 重新执行 cofigure 命令,增加 fair 模块的配置
./configure --prefix=/usr/local/nginx --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --pid-path=/usr/local/nginx/logs/nginx.pid --lock-path=/usr/local/nginx/logs/nginx.lock --http-client-body-temp-path=/usr/local/nginx/temp/client-body --http-proxy-temp-path=/usr/local/nginx/temp/proxy --http-fastcgi-temp-path=/usr/local/nginx/temp/fastcgi --http-uwsgi-temp-path=/usr/local/nginx/temp/uwsgi --http-scgi-temp-path=/usr/local/nginx/temp/scgi --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-file-aio --with-http_realip_module --add-module=/usr/local/nginx-upstream-fair-master# 编译(不安装)
make# 备份原来的 nginx 命令
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx-bak# 替换原来的 nginx 命令
cp /usr/local/nginx-1.16.1/objs/nginx /usr/local/nginx/sbin/nginx

修改配置文件 nginx.conf ,如下:

upstream tomcat_test {fair;server 192.168.71.57:8080;server 192.168.71.57:8081;
}

最后启动 Nginx 服务,验证。本地采用 tomcat 里面 sleep 的方式测试,结果不对,奇怪!?


  • Nginx 教程合集(微信左下方阅读全文可直达)。

扫码关注微信公众号 程序员35 ,获取最新技术干货,畅聊 #程序员的35,35的程序员# 。独立站点:https://cxy35.com

Nginx 负载均衡 - fair相关推荐

  1. Nginx学习之负载均衡fair模块

    2019独角兽企业重金招聘Python工程师标准>>> Nginx学习之负载均衡fair模块 2017-04-10 20:27 写在开始 前面对Nginx的三种负载均衡实现做了一个简 ...

  2. 解析nginx负载均衡

    摘要:对于一个大型网站来说,负载均衡是永恒的话题.随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP.Citrix NetScaler.Radware等等,虽然可以解决问 ...

  3. Nginx负载均衡常用配置

    搭建实验环境(使用docker部署两台nginx容器) 1)使用搭建第一台nginx服务 [root@linux-node4 ~]# docker container run -d --name we ...

  4. Nginx负载均衡策略介绍

    负载均衡策略 介绍完Nginx负载均衡的相关指令后,我们已经能实现将用户的请求分发到不同的服务器上,那么除了采用默认的分配方式以外,我们还能采用什么样的负载算法? Nginx的upstream支持如下 ...

  5. Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点

    Nginx负载均衡的配置,常用策略,场景,以及特点,放到这里是需要更细化的讲解,毕竟一期还没有做集群,而我们这一期做集群的时候,很多点要单独拿出来深入讲解,第一个轮询,默认的一个配置,简单也好理解,第 ...

  6. nginx负载均衡简单配置

    nginx负载均衡简单配置 准备三台虚拟机来做这个实验: 172.16.160.99        web服务器 172.16.160.103      web服务器 172.16.160.98    ...

  7. nginx负载均衡的5种策略

    nginx负载均衡的5种策略 nginx负载均衡 发布于 2018-04-19 要理解负载均衡,必须先搞清楚正向代理和反向代理. 负载均衡的几种常用方式 1.轮询(默认) 每个请求按时间顺序逐一分配到 ...

  8. Nginx 负载均衡 配置全过程

    Nginx平台搭建:Nginx+mysql+php-fpm搭建高性能Nginx平台 前端Nginx:192.168.93.137 后端web1:192.168.93.138 后端web2:192.16 ...

  9. nginx负载均衡 加权轮询和ip_hash

    下面给大家总结了几种真正的nginx负载均衡的功能了,在此我们加了一个权重判断法就是根据nginx负载的状态实现分配访问用户到权重值少的机器了,具体配置如下. nginx为后端web服务器(apach ...

最新文章

  1. 视觉Transformer最新综述
  2. 诚信,聪明,快乐,地位与竞争
  3. linux显卡驱动mxm,linux下我的FX5200显卡驱动安装
  4. BRCM SDK 版本IPv6问题
  5. 实践1-qq邮箱主页
  6. 第三次学JAVA再学不好就吃翔(part113)--对象操作流
  7. sinx/x在0到+∞的积分
  8. xdb 服务_localhost 8080 XDB服务器需要用户名和密码的问题
  9. 空降领导(CTO/技术总监)如何安全落地
  10. 这是一个转型AI的励志故事,从非科班到拿下竞赛一等奖
  11. 凡客被裁员工“三问陈年” 官方不予回应
  12. python投票程序计数_计数投票程序
  13. (已解决)解决第三方平台访问Vue项目cue-router把#号变成百分号23导致项目404的问题
  14. 华为鸿蒙os今日新闻,华为鸿蒙 HarmonyOS 2 来了!完整升级名单曝光
  15. 基于高德导航的Android大作业
  16. laravel框架excel扩展包maatwebsite-excel升级3.1版本兼容处理
  17. STM32,点亮RGB灯,指南者,新手
  18. 语音对讲软件_微信语音转播软件是哪个?怎样一键转发?
  19. 如何用postman测试导出excel接口
  20. IT行业对学历要求如何?

热门文章

  1. 计算机课程作品观摩,计算机观摩教学活动心得体会(共7篇)
  2. 海尔计算机无法装win7系统,海尔品牌机win10改win7系统教程
  3. Linux搭建minio及mc客户端使用
  4. Flask允许跨域请求
  5. matlab建立风速模型,基于MATLAB的风力发电系统风速模型的研究
  6. C#对word文档的读取
  7. ls——Linux王国中的皇家侦探_莫韵乐的linux王国英雄传
  8. 硬货|re:Invent 2022 参会指南,大会精华全知晓
  9. 亿信华辰:一文详解数据标准管理
  10. 远程打印机连接设置internet打印机(已测试)