集群基础3——haproxy负载均衡apache

2023-10-27

一、环境说明

  • 使用haproxy对apache进行负载均衡。
主机IP 角色 安装服务
192.168.161.131 后端服务器1 httpd,80端口
192.168.161.132 后端服务器2 httpd,8080端口
192.168.161.133 调度服务器 haproxy,8189端口

二、安装配置httpd

  • 参考文章,需要对两台后端服务器安装httpd服务,并配置https。

1.使用http访问。
在这里插入图片描述

2.使用https访问。

在这里插入图片描述

三、安装配置haproxy

1.安装依赖包,创建系统用户。

//安装依赖包。
yum -y install make gcc pcre-devel bzip2-devel openssl-devel systemd-devel

//创建用户。
useradd -r -M -s /sbin/nologin haproxy

2.解压安装包,编译安装。

tar zxf haproxy-2.9-dev1.tar.gz 
cd haproxy-2.9-dev1

//编译安装。
make -j $(grep 'processor' /proc/cpuinfo |wc -l)  \
TARGET=linux-glibc  \
USE_OPENSSL=1  \
USE_ZLIB=1  \
USE_PCRE=1  \
USE_SYSTEMD=1

make install PREFIX=/usr/local/haproxy

3.配置各个负载的内核参数。

echo 'net.ipv4.ip_nonlocal_bind = 1' >>  /etc/sysctl.conf
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf

//重新读取。
sysctl -p

4.提供配置文件。

mkdir /etc/haproxy

//添加以下内容。
cat > /etc/haproxy/haproxy.cfg <<EOF
#--------------全局配置----------------
global
    log 127.0.0.1 local0  info
    #log loghost local0 info
    maxconn 20480
#chroot /usr/local/haproxy
    pidfile /var/run/haproxy.pid
    #maxconn 4000
    user haproxy
    group haproxy
    daemon
#---------------------------------------------------------------------
#common defaults that all the 'listen' and 'backend' sections will
#use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode http
    log global
    option dontlognull
    option httpclose
    option httplog
    #option forwardfor
    option redispatch
    balance roundrobin
    timeout connect 10s
    timeout client 10s
    timeout server 10s
    timeout check 10s
    maxconn 60000
    retries 3
#--------------统计页面配置------------------
listen admin_stats
    bind 0.0.0.0:8189
    stats enable
    mode http
    log global
    stats uri /haproxy_stats
    stats realm Haproxy\ Statistics
    stats auth admin:admin
    #stats hide-version
    stats admin if TRUE
    stats refresh 30s
#---------------web设置-----------------------
listen webcluster
    bind 0.0.0.0:80
    mode http
    #option httpchk GET /index.html
    log global
    maxconn 3000
    balance roundrobin
    cookie SESSION_COOKIE insert indirect nocache
    server web01 172.16.103.130:80 check inter 2000 fall 5
    #server web01 192.168.80.102:80 cookie web01 check inter 2000 fall 5
EOF


//修改配置文件。
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 
#    cookie SESSION_COOKIE insert indirect nocache         //将其注释掉
    server web01 192.168.161.131:80 check inter 2000 fall 5  //添加后端服务器ip,注意这里的80端口就是httpd的监听端口。
    server web02 192.168.161.132:80 check inter 2000 fall 5

5.设置系统服务。

cat > /usr/lib/systemd/system/haproxy.service <<EOF
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target

[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg   -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg  -p /var/run/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
EOF

//重新加载。
systemctl daemon-reload

6.启用日志。

vim /etc/rsyslog.conf 
local0.*       /var/log/haproxy.log    //添加此行

//重启服务。
systemctl restart rsyslog

7.启动haproxy。

systemctl start haproxy

在这里插入图片描述

四、验证http负载均衡

1.使用harproxy的IP访问网页,访问一次显示RS1,刷新一下显示RS2,再刷新一下RS1。
在这里插入图片描述
在这里插入图片描述
2.命令访问。
在这里插入图片描述

五、配置https负载均衡

1.需要提前配置两台后端服务器的httpd为https模式。

2.修改haproxy配置文件。

vim /etc/haproxy/haproxy.cfg 
#---------------------------------------------------------------------
defaults
    mode tcp                //将此处改成tcp协议
    
#---------------web设置-----------------------
listen webcluster
    bind 0.0.0.0:443       //将端口改成443
    mode tcp               //使用tcp协议          

#    cookie SESSION_COOKIE insert indirect nocache
    server web01 192.168.161.131:443 check inter 2000 fall 5     //将端口改成443
    server web02 192.168.161.132:443 check inter 2000 fall 5


//重启服务。
systemctl restart haproxy

3.验证。
在这里插入图片描述

六、haproxy网页监控

6.1 监控参数详解

1.可以通过haproxy的web页面,查看监听负载均衡集群状态,包括调度器、后端服务器。
在这里插入图片描述
在这里插入图片描述
2.监控页面参数详解。

#####################################################
Queue列表
Cur: current queued requests //当前的队列请求数量
Max:max queued requests     //最大的队列请求数量
Limit:           //队列限制数量
#####################################################
Session rate (每秒的连接回话列表)
scur: current sessions        //每秒的当前回话的限制数量
smax: max sessions           //每秒的新的最大的回话量
slim: sessions limit           //每秒的新回话的限制数量
#####################################################
Sessions 
Total:            //总共回话量
Cur:             //当前的回话
Max:     //最大回话 
Limit:    //回话限制
Lbtot:   //选中一台服务器所用的总时间
#####################################################
Bytes
In: //网络的字节数输入总量  
Out: //网络的字节数输出总量
#####################################################
Denied
Req:  //拒绝请求量
Resp: //拒绝回应
#####################################################
Errors
Req:request errors             //错误请求
Conn:connection errors          //错误的连接
Resp: response errors (among which srv_abrt)  ///错误的回应
#####################################################
Warnings
Retr: retries (warning)                      //重新尝试
Redis:redispatches (warning)               //再次发送
#####################################################
Server列表
Status:状态,包括up(后端机活动)和down(后端机挂掉)两种状态
LastChk:    持续检查后端服务器的时间
Wght: (weight) : 权重
Act: server is active (server), number of active servers (backend) //活动链接数量
Bck: server is backup (server), number of backup servers (backend) //backup:备份的服务器数量
Down:          //后端服务器连接后都是down的数量
Downtime: downtime: total downtime (in seconds)    //总的downtime 时间
Throttle: warm up status                          //设备变热状态

6.2 页面操作

1.查看RS1的httpd服务状态。
在这里插入图片描述
2.手动关闭网页上的服务。
在这里插入图片描述
在这里插入图片描述
3.过一会,页面显示的服务自动起来了。
在这里插入图片描述
4.关闭服务器上的服务。
在这里插入图片描述
5.查看监控网页状态,显示该服务已宕机。此时即时在网页上启动该服务,也没有效果,只能在服务器上启动服务。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集群基础3——haproxy负载均衡apache 的相关文章

随机推荐

  • 类模板、函数模板以及类成员函数在类外定义情况

    1函数模板的写法 函数模板的一般形式如下 Template
  • Shuffle 操作

    在spark中的主要操作 触发一个叫作shuffle的事件 shuffle是spark对于重新分布数据的机制 因此数据 能在partitions上进行不同的分组 Shuffle包含在executors和machines上的数据复制 使得 s
  • Maven下载

    1 访问Maven官网Maven Welcome to Apache Mavenhttps maven apache org 2 单击 DownLoad 出现以下界面 3 点击 apache maven 3 8 6 bin zip 链接 下
  • error C2061: syntax error : identifier 'SHFILEINFOW' // 无法解析的外部符号 wWinMain,该符号在函数 WinMainCRTStartup

    1 gt StdAfx cpp 1 gt E Program Files Windows CE Tools wce600 DbAu13xx include MIPSII shellapi h 321 error C2061 syntax e
  • 接口处理请求时间过长,前台响应“服务器超时”的解决办法

    数据计算量过大 接口响应时间过长时 网关会报超时 页面就挂了 没有很好的解决办法 所以采用了如下解决办法 1 将原本的一个接口拆分为3个 三个接口异步操作 三个接口作用及描述如下 接口1 获取本地异步操作的唯一标识 唯一且加密后的code值
  • app php与html5,uniapp与HTML的区别是什么

    区别 1 uniapp是一个框架 而HTML是一种标记语言 2 组件 标签有差异 例p改成view span font改成text a改成navigator img改成image 3 uniapp不支持dom操作 HTML支持 本教程操作环
  • [2023.7.17]7 CPU Front-End Optimizations

    CPU前端 FE 组件在第3 8 1节中进行了讨论 大多数情况下 CPU FE的低效率可以描述为后端等待执行指令 但FE无法提供指令的情况 结果是 在没有执行任何实际有用工作的情况下浪费了CPU周期 由于现代处理器是4宽度 即 它们每个周期
  • 【汤圆名叫“小刺猬”和“雪化了”】——吃另类汤圆 听奇特民俗

    听奇特民俗 TITLE 汤圆名叫鈥溞 题澓外溠 蒜潯库斺敵粤砝嗵涝 听奇特民俗 gt 把汤圆微出创意来 吃另类汤圆听奇特民俗感世界之大无奇不有 叹那些正在消失的民俗 我挺懒的 而且又不是那么爱吃汤圆 减肥 所以就没有那么勤快来DIY 但节总
  • python字符串与数字类型转换

    str与int i 10 s str i s 10 s 1 i int s i 1 str与float st 4 t float st t 0 4 st 0 4 t float st t 0 4 t 0 4 st str t st 0 4
  • libevent (一) socket属性设置与初始化操作

    socket属性设置与初始化操作 libevent是一个事件触发的网络库 适用于windows linux bsd等多种平台 内部使用select epoll kqueue等系统调用管理事件机制 著名分布式缓存软件memcached也是li
  • 小程序怎么搭建?学会这些技巧,开启创业之路

    随着移动互联网的发展 小程序成为了一种重要的创业工具 小程序具有开发周期短 运营成本低 用户体验好等特点 被越来越多的企业和个人用来实现商业价值 本文将通过一个案例来介绍小程序的搭建技巧 帮助创业者更好地开启创业之路 案例介绍 某家生鲜电商
  • CentOS下安装配置Phabricator

    1 下载快捷安装sh http download csdn net detail u012547633 9882697 把centos版的phabricator安装脚本下载到opt目录并安装 cd opt chmod 777 install
  • java版本号分段比较_版本号判断,例如:1.0.0比较1.0.1

    有的时候可能会判断客户端的版本号信息 多位数的版本号判断做个记录 代码分享者 zzp 注意 Java中应该吧分割的正则使用 来分割小数点字符串 分割 NSArray curVerArr currentVersion componentsSe
  • 了解Chat GPT

    CHATGPT是一款强大的人工智能语言模型 可以回答任何问题和开启有趣的对话 以下是一些使用CHATGPT的技巧和提示 提问明确 CHATGPT能够回答任何问题 但它需要清晰和明确的问题来给出准确的答案 因此 在提问时要尽可能明确和具体 尝
  • 【JDBC】-- Java连接数据库方法(Mysql8+idea)

    Java Database Connectivity 简称JDBC 是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口 提供了诸如查询和更新数据库中数据的方法 Java如何连接数据库 下面使用Mysql8版本 编译器使用ide
  • Flink_CDC搭建及简单使用

    Flink CDC搭建及简单使用 1 CDC简介 CDC Change Data Capture 在广义的概念上 只要能捕获数据变更的技术 都可以称为 CDC 但通常我们说的CDC 技术主要面向数据库 包括常见的mysql Oracle M
  • Dubbo-admin 新版本启动问题记录

    Dubbo admin 新版本启动问题记录 文章目录 Dubbo admin 新版本启动问题记录 1 安装步骤 a 下载zookeeper b 下载并编译dubbo 2 总结 1 安装步骤 直接按照官网下载下来的软件 并按照说明安装软件会存
  • Vagrant虚拟机安装,磁盘扩容以及局域网内访问教程

    1 下载vagrant以及virtualBox 配上vagrant virtualBox线上下载地址 vagrant下载地址 virtualBox下载地址 2 开始准备安装镜像文件 找到需要安装的系统镜像文件 配上vagrant镜像地址 v
  • Linux strace 命令 说明

    Strace是Linux中一个调试和跟踪工具 它可以接管被跟踪进程执行的系统调用和收到的信号 然后把每一个执行的系统调用的名字 参数和返回值打印出来 可以通过strace找到问题出现在user层还是kernel层 strace 显示这些调用
  • 集群基础3——haproxy负载均衡apache

    文章目录 一 环境说明 二 安装配置httpd 三 安装配置haproxy 四 验证http负载均衡 五 配置https负载均衡 六 haproxy网页监控 6 1 监控参数详解 6 2 页面操作 一 环境说明 使用haproxy对apac