HAProxy部署Web集群(Nginx)实验

实验前准备
HAProxy服务器:192.168.188.11
内核版本最好要在2.6以上,使用uname -r查看自己的内核版本是否适用


Nginx服务器1:192.168.188.12
Nginx服务器2:192.168.188.13
客户端:192.168.188.1(本机windows)

  1. HAProxy部署
    1. 关闭防火墙
      systemctl stop firewalld
      setenforce 0
    2. 编译安装HAProxy
      安装依赖包
      yum install -y pcre-devel bzip2-devel gcc gcc-c++ make
      解压HAProxy软件包
      tar zxvf haproxy-1.5.19.tar.gz
      安装
      cd haproxy-1.5.19/
      使用uname -r查看内核版本,如果是2.6的那下面的参数就用TARGET=linux26,大于2.6.28的请使用TARGET=linux2628
      make TARGET=linux2628 ARCH=x86_64
      make install
    3. HAProxy服务器配置
      复制一份模板过来使用
      mkdir /etc/haproxy
      /opt/haproxy-1.5.19是我的软件包的位置
      cp cp /opt/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy/
      对模板配置文件进行修改
      cd /etc/haproxy
      vim haproxy.cfg
      # this config needs haproxy-1.1.28 or haproxy-1.2.1
      
      # 全局配置
      global
      # 定义日志文件的位置和级别
              log /dev/log    local0 info
              log /dev/log    local0 notice
              #log loghost    local0 info
      # 最大连接数
              maxconn 4096
      # chroot运行路径,这是haproxy自己设置的根目录,一般都是注释掉
              #chroot /usr/share/haproxy
              uid 99
              gid 99
              daemon
      # 添加设置并发进程数,建议与服务器CPU的核数相等或是2倍
              nbproc 1
              #debug
              #quiet
      
      # 配置默认参数
      defaults
              log     global       # 使用global模块定义的日志格式
              mode    http         # 7层代理http模式
              option  httplog      # 日志类别是http日志格式
              option  dontlognull  # 不记录健康检查的日志
              retries 3            # 检查节点服务器重试次数
              redispatch           # 服务器负载过高时,自动结束当前队列处理过久的连接
              maxconn 2000         # 最大连接数,不能超过global模块中maxconn的大小
              #contimeout     5000 # 连接超时时间(ms)
              #clitimeout     50000# 客户端超时时间(ms)
              #srvtimeout     50000# 服务端超时时间(ms)
              timeout http-request 10s # 默认http请求超时时间
              timeout queue 1m     # 默认队列超时时间
              timeout connect 10s  # 默认连接超时时间
              timeout client 1m    # 默认客户端超时时间
              timeout server 1m    # 默认服务端超时时间
              timeout http-keep-alive 10s # 默认持久连接超时时间
              timeout check 10s    # 设置心跳检查超时时间
      
      # 删除下面所有listen配置,自己添加监听
      # 定义一个名为webcluster的应用
      listen webcluster 0.0.0.0:80
      # 检查服务器的test.html文件
              option httpchk GET /test.html
      # 负载均衡调度算法使用轮询算法
              balance roundrobin
      # 定义节点
      # check inter 2000是健康检查时间间隔,fall 3表示失败3次代表节点失效
      # 节点后如果加backup,表示是备用服务器,只有在所有在线节点失效后才启用,不加表示是在线节点
              server inst1 192.168.188.12:80 check inter 2000 fall 3
              server inst2 192.168.188.13:80 check inter 2000 fall 3


    4. 添加HAProxy系统服务
      复制初始化脚本文件
      cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
      给与执行权限
      chmod +x /etc/init.d/haproxy
      将初始化脚本添加到系统服务中
      chkconfig --add /etc/init.d/haproxy
      软链接到命令目录底下,方便使用
      ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
      启动服务
      service haproxy start
  2. 节点服务器部署
    1. 关闭防火墙
      systemctl stop firewalld
      setenforce 0
    2. 安装nginx的过程不再赘述,还不清楚请翻阅之前的实验
    3. 在两台服务器上写入不同的内容,注意这里的页面文件不是默认的index.html,因为我们在haproxy.cfg文件中检查的就是test.html
      echo "my ip is 192.168.188.12" > /usr/local/nginx/html/test.html
      echo "my ip is 192.168.188.13" > /usr/local/nginx/html/test.html
    4. 启动服务
      systemctl start nginx
  3. 测试
    1. 在客户端浏览器上访问http://192.168.188.11/test.html,多刷新几次,负载均衡也没问题,注意这里我们访问的uri是test.html,所以得到的响应数据就是节点服务器上的test.html,如果只输入192.168.188.11会怎么样呢?可以自己猜测一下然后进行实验

  4. 补充:默认haproxy的日志是输出到系统的syslog中,不便于查看,所以我们单独保存haproxy的日志
    1. vim /etc/haproxy/haproxy.cfg
      global
      log /dev/log local0 info
      log /dev/log local0 notice

      这一步我们之前的步骤已经改过了,没改过的改完记得重启haproxy服务
    2. 一般来说需要修改rsyslog配置,但是为了便于管理,直接在/etc/rsyslog.d/下新建一个haproxy.conf文件,将haproxy的配置独立定义,rsyslog启动时会自动加载此目录下的所有配置文件
      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的info日志将记录到/var/log/haproxy/haproxy-info.log下,notice日志将记录到/var/log/haproxy/haproxy-notice.log下
    3. 重启rsyslog
      systemctl restart rsyslog.service
    4. 此时我们再进行几次访问,就能看到相应的日志了
      tail /var/log/haproxy/haproxy-info.log

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/203997.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

渗透测试|HW蓝队

记录某个对某个钓鱼事件中获取的钓鱼样本进行分析,以及简单的制作学习 样本行为分析 首先看到是 qq 邮箱发来的某个压缩包大概本身是带密码的,反手就丢到虚拟机先看下大概文件,解压后是这样的一个快捷方式 然后打开属性查看快捷方式&#x…

基于STC12C5A60S2系列1T 8051单片机的IIC总线器件24C02实现掉电保存计时时间应用

基于STC12C5A60S2系列1T 8051单片机的IIC总线器件24C02实现掉电保存计时时间应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD1602简单介绍IIC通信简单…

RocketMQ-快速实战

MQ简介 MQ:MessageQueue,消息队列。是在互联网中使用非常广泛的一系列服务中间件。 Message:消息。消息是在不同进程之间传递的数据。这些进程可以部署在同一台机器上,也可以分布在不同机器上。(数据形式&#xff1a…

2023工作中遇到问题一

1、vue中模拟鼠标点击下拉框 <xxx-select ref"aaa" :value"form.serviceCharge" placeholder"请输入" add"(value) > getBasGoods(value)" :configInfo"configInfo" />vue中模拟鼠标点击 this.$refs.aaa.$el.cli…

经典的回溯算法题leetcode全排列问题思路代码详解

目录 全排列问题 leetcode46题.全排列 leetcode47题.全排列II 对回溯算法感兴趣的朋友也可以多多支持一下我的其他文章。 回溯算法详解-CSDN博客 经典的回溯算法题leetcode组合问题整理及思路代码详解-CSDN博客 经典的回溯算法题leetcode子集问题思路代码详解-CSDN博客 …

AI文章生成器-免费批量原创文章生成的工具

在科技的大潮中&#xff0c;AI技术愈发成熟&#xff0c;文言一心文章生成器悄然崭露头角。这一创新性工具的出现&#xff0c;为广大用户提供了快速、高效的文章生成方式。147SEO的批量原创功能更是锦上添花&#xff0c;让文章创作变得更为轻松。正是在这背后&#xff0c;我们看…

iPhone苹果手机如何将词令网页添加到苹果iPhone手机桌面快捷打开?

iPhone苹果手机如何将词令网页添加到苹果iPhone手机桌面快捷打开&#xff1f; 1、在iPhone苹果手机上找到「Safari浏览器」,并点击打开&#xff1b; 2、打开Safari浏览器后&#xff0c;输入词令官方网站地址&#xff1a;ciling.cn ; 3、打开词令官网后&#xff0c;点击Safari…

数字图像处理(实践篇)十二 基于小波变换的图像降噪

目录 一 基于小波变换的图像降噪 &#xff08;1&#xff09;小波变换基本理论 &#xff08;2&#xff09;小波分析在图像处理中的应用 &#xff08;3&#xff09;小波变换原理 &#xff08;4&#xff09;小波降噪原理 &#xff08;5&#xff09;小波降噪算法的实现 &…

Windows系统IIS服务配置与网站搭建,结合内网穿透实现公网访问

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 1.前言 在网上各种教程和介绍中&#xff0c;搭建网页都会借助各种软件的帮助&#xf…

python文件路径读取提示can‘t open/read file: check file path/integrity

它的意思是“不能打开/读取文件”&#xff0c;让我们检查路径&#xff0c;在查看下路径前是否忘记加r了 python文件路径读取&#xff0c;如果不加r&#xff0c;上述文件路径在代码运行时会报错&#xff0c;因为其会先将双引号”“去掉&#xff0c;然后系统看到了文件路径中有\r…

应用场景丨智慧社区怎么有效预警内涝积水灾害

在繁华的社区中&#xff0c;一场突如其来的暴雨可能会让整个社区陷入“水深火热”。面对这样的困境&#xff0c;社区内涝积水监测系统应运而生&#xff0c;成为社区生命线的重要守护者。 社区内涝积水监测系统是一套高科技预警机制&#xff0c;它运用传感器、数据采集器、通信网…

Nginx(无法解析PHP网页如何解决?FPM解决你的烦恼!)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xff1a;云计算技…

卓越进行时 | 市人大常委组织深入赛宁网安考察调研

11月28日&#xff0c;市人大常委会党组书记、主任龙翔来到基层一线&#xff0c;督导江宁区主题教育工作。市委第五巡回督导组组长鲍陈&#xff0c;区领导赵洪斌、任宁等参加。 督导期间&#xff0c;龙翔在网络安全卓越中心听取赛宁网安研发情况汇报&#xff0c;了解公司产品在…

常见的回归测试策略有哪几种?

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

NVM管理多个nodejs安装步骤

文章目录 NVM安装步骤**二、nvm下载****三、nvm安装**版本安装与切换命令使用 NVM安装步骤 一、nvm说明 nvm 主要是用来管理 nodejs 和 npm 版本的工具&#xff0c;可以用来切换不同版本的 nodejs。 安装nvm之前先卸载node 二、nvm下载 https://github.com/coreybutler/nvm-w…

关于前端学习的思考-内边距、边框和外边距

从最简单的盒子开始思考 先把实际应用摆出来&#xff1a; margin&#xff1a;居中&#xff0c;控制边距。 padding&#xff1a;控制边距。 border&#xff1a;制作三角形。 盒子分为内容盒子&#xff0c;内边距盒子&#xff0c;边框和外边距。 如果想让块级元素居中&#…

MySQL图书管理系统(49-94)源码

-- 九、 子查询 -- 无关子查询 -- 比较子查询&#xff1a;能确切知道子查询返回的是单值时&#xff0c;可以用>&#xff0c;<&#xff0c;&#xff0c;>&#xff0c;<&#xff0c;!或<>等比较运算符。 -- 49、 查询与“俞心怡”在同一个部门的读者的借…

【Docker】安装RabbitMQ

1.拉取镜像 docker pull rabbitmq 2.运行容器 docker run \-e RABBITMQ_DEFAULT_USERitcast \-e RABBITMQ_DEFAULT_PASS123321 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \-d \rabbitmq 3.安装管理页面的插件 进入容器内部 dock…

mac安装homebrew/brew遇到443报错

文章目录 问题描述解决方法方法一方法二 参考文献 问题描述 brew 全称Homebrew 是Mac OSX上的软件包管理工具 想在mac终端安装&#xff0c;运行网上提供的指令 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)&quo…

【Android Jetpack】Lifecycle 感知生命周期

文章目录 背景示例LifeCycle的原理LifecycleOwner自定义LifecycleOwnerLifecycleObserver 示例改进使用LifecycleService解耦Service与组件整个应用进程的生命周期ProcessLifecycleOwner 背景 在Android应用程序开发中&#xff0c;解耦很大程度上表现为系统组件的生命周期与普…