当前位置: 首页 > news >正文

使用 HAProxy + Nginx 搭建 Web 群集(二)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

使用 HAProxy + Nginx 搭建 Web 群集

HAProxy 是目前比较流行的一种群集调度工具,同类群集调度工具中,同 LVS 对比,LVS 性能最好,但是搭建相对比较复杂,Nginx 的 upstream 模块支持群集功能,但是对群集节点的健康检查功能不强,性能没有 HAProxy 好。

系统环境

主机IP地址主要软件
HAProxy 服务器192.168.100.200haproxy-1.5.19.tar.gz
Nginx 服务器1192.168.100.201nginx-1.12.0.tar.gz
Nginx 服务器2192.168.100.202nginx-1.12.0.tar.gz

开始部署

部署 Nginx 服务器

  • 一、 编译安装 Nginx 服务器
yum install -y pcre-devel zlib-devel gcc gcc-c++ make 
useradd -M -s /sbin/nologin nginx
tar zxvf nginx-1.12.0.tar.gz -C /opt
cd /opt/nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make && make install
  • 安装后的默认信息如下。
    -默认安装目录: /usr/local/nginx
    -默认日志: /usr/local/nginx/logs/
    -默认监听端口:80
    -默认 Web 目录: /usr/local/nginx/html

  • 接下来设置测试页面并启动 Nginx 服务

echo "Server 192.168.100.201" > /usr/local/nginx/html/test.html
/usr/local/nginx/sbin/nginx    ##启动nginx
systemctl stop firewalld.service
setenforce 0
  • 为了方便,网站直接使用 IP 地址访问。在客户端访问  http://192.168.100.201/test.html   进行测试。

  • 搭建 Nginx 服务器2的过程和 Nginx 服务器1的编译安装步骤相同,不同地方在于建立测试页面。

echo "Server 192.168.100.202" > /usr/local/nginx/html/test.html

部署 HAProxy 服务器

  • 编译安装 HAProxy
yum install pcre-devel bzip2-devel gcc gcc-c++ make -y
tar zxvf haproxy-1.5.19.tar.gz -C /opt
cd haproxy-1.5.19/
make TARGET=linnux26    ##64位系统
make install
  • HAProxy 服务器配置
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/    ##复制haproxy.cfg 文件复制到配置文件目录
  • 编辑配置文件
vim /etc/haproxy/haproxy.cfg
chroot /usr/share/haproxy  ##删除两条语句及所有 listen 项目
redispatch
##添加
listen  webcluster 0.0.0.0:80option httpchk GET /test.htmlbalance roundrobinserver inst1 192.168.100.201:80 check inter 2000 fall 3server inst2 192.168.100.202:80 check inter 2000 fall 3
  • 复制自启动脚本,并启动服务
cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
chmod +x haproxy
chkconfig --add /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
service haproxy start
  • Windows 客户端测试(可以看到访问 HAProxy 服务器地址时,轮询访问两台 Nginx 服务器)

    使用 HAProxy + Nginx 搭建 Web 群集_ Nginx

     

    使用 HAProxy + Nginx 搭建 Web 群集_ Nginx_02

HAProxy 日志定义分离

  • HAProxy 日志默认输出到系统 syslog 中,查看非常不方便。为了更好的管理日志,可以将 HAProxy 的 info 访问日志和 notice 错误日志记录到不同的日志文件中。

  • 修改配置文件

vim /etc/haproxy/haproxy.cfg
##修改为下面的行
globallog /dev/log    local0 infolog /dev/log    local0 notice
  • 修改 rsyslog 配置,并重启 rsylog 服务
touch /etc/rsyslog.d/haproxy.conf
vim /etc/rsyslog.d/haproxy.conf
##添加下面的脚本
if ($programname == 'haproxy' and $syslogseverity-text == 'info')
then -/var/log/haproxy/haproxy-info.log
&~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log
&~

通过客户端访问 HAProxy 服务器,并查看日志

cd /var/log/haproxy/
cat haproxy-info.log

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CF964(div4)补题G1G2
  • pod探针和状态
  • 字节跳动发Seed-TTS语音合成模型,可模仿任意人的声音,效果逼真
  • (回溯) LeetCode 78. 子集
  • 网络安全自学笔记
  • 自定义linux某些常见配置
  • mysql在4核16G 500G的服务器上单表数据量多大合适
  • C# 使用NHibernate连接MySQL实现数据的增删改查
  • 快速排序原理与实现
  • SuccBI+低代码文档中心 — 可视化分析(仪表板)(上)
  • WordPress多用途电子商务博客新闻主题betheme 21.5.6版本
  • React 知识点(二)
  • oracle 判断某个字段包含某几个字符like或INSTR
  • 基于LQR算法的机器人轨迹跟踪控制详解
  • MYSQL 5.7.36 等保 建设记录
  • ----------
  • hexo+github搭建个人博客
  • 分享一款快速APP功能测试工具
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 2017 前端面试准备 - 收藏集 - 掘金
  • eclipse(luna)创建web工程
  • HTML-表单
  • Promise面试题,控制异步流程
  • tensorflow学习笔记3——MNIST应用篇
  • Vue2.0 实现互斥
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 翻译:Hystrix - How To Use
  • 复杂数据处理
  • 和 || 运算
  • 两列自适应布局方案整理
  • 配置 PM2 实现代码自动发布
  • 前端之React实战:创建跨平台的项目架构
  • 深度解析利用ES6进行Promise封装总结
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • gunicorn工作原理
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (2015)JS ES6 必知的十个 特性
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (6)添加vue-cookie
  • (7) cmake 编译C++程序(二)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (理论篇)httpmoudle和httphandler一览
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>