haproxy配置安装,实现web服务器负载均衡

一、源码编译安装haproxy 2.x,配置服务启动脚本

  1. 下载Haproxy源码包:

wget -c https://repo.huaweicloud.com/haproxy/2.4/src/haproxy-2.4.8.tar.gz

  1. 下载源码编译工具:

yum install -y gcc gcc-c++ make

  1. 下载Haproxy依赖包lua并编译安装:

    curl -R -O http://www.lua.org/ftp/lua-5.4.4.tar.gz
    tar zxf lua-5.4.4.tar.gz -C /usr/local/src/
    cd /usr/local/src/lua-5.4.4
    make linux test

4.查看lua版本信息:

复制代码
cp /usr/local/src/lua-5.4.4/src/lua /usr/bin/lua
    
lua -v

5. 解压Haproxy源码包:

复制代码
tar xf haproxy-2.4.8.tar.gz -C /usr/local/src/
 
cd /usr/local/src/haproxy-2.4.8

6. 安装编译时需要的依赖包

yum install openssl-devel pcre-devel systemd-devel -y

7. 编译安装Haproxy

复制代码
make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 LUA_INC=/usr/local/src/lua-5.4.4/src/ LUA_LIB=/usr/local/src/lua-5.4.4/src/
 
make install PREFIX=/usr/local/haproxy

8. 查看haproxy的目录结构

复制代码
tree /usr/local/haproxy/

9. 对/usr/local/haproxy/sbin/haproxy做软连接:

ln -sv /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy

10. 查看haproxy版本信息:

haproxy -v

  1. 为haproxy服务配置启动脚本:

    vim /usr/lib/systemd/system/haproxy.service

    [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 /usr/local/haproxy/haproxy.pid
    ExecReload=/bin/kill -USR2 $MAINPID

    [Install]
    WantedBy=multi-user.target

12. 创建haproxy服务的配置文件:

可以配置文件示例中复制,配置文件示例位置:/usr/local/src/haproxy-2.4.8/examples/

复制代码
mkdir /etc/haproxy
vim /etc/haproxy/haproxy.cfg
 
global  ##全局配置
        maxconn         10000
        stats socket    /var/run/haproxy.stat mode 600 level admin
        log             127.0.0.1 local2 info
        user            haproxy  ##指定用户
        group           haproxy  ##指定组
        chroot          /usr/local/haproxy  ##服务工作目录
        daemon  ##开启保护进程
 
defaults  ##默认配置
        mode http
        option httplog
        log global
        timeout client 1m
        timeout server 1m
        timeout connect 10s
        timeout http-keep-alive 2m
        timeout queue 15s
        timeout tunnel 4h  # for websocket
        default-server inter 1000 weight 3
 
listen app1  ##此部分是前端部分和后端部分的结合
   bind :80  ##监听的端口
   log global
 
   server web1 172.25.10.120:80 check ##后端的真实服务器地址
   server web2 172.25.10.130:80 check ##后端的真实服务器地址
 
listen stats  #配置监听页面
        mode http
        bind :9999  ##使用9999端口
        stats enable
        log global
        stats uri /haproxy-status
        stats auth haadmin:123456  ##指定登录监听页面的用户是haadmin,密码是123456
  1. 创建用户和组:

useradd -r -s /sbin/nologin -d /usr/local/haproxy/ haproxy

  1. 启动haproxy服务:

systemctl start haproxy.service

  1. 在后端两台真实服务器上创建web页面,并开启apache服务:

记得关闭防火墙

复制代码
RS1:echo "`hostname -I`,web test page" > /var/www/html/index.html
 
RS2: echo "`hostname -I`,web test page" > /var/www/html/index.html
 
systemctl start httpd

16. 测试haproxy是否实验负载均衡:

17. 查看haproxy的状态页面

http://172.25.10.110:9999/haproxy-status

二、配置haproxy日志

三、 配置haproxy实现web服务器负载均衡

四、通过haproxy的acl规则实现智能负载均衡(动静分离)

相关推荐
迪康coolmu9 分钟前
金融客户数据合规落地:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·数据库·经验分享·安全·网络安全·金融
郭小李13 分钟前
转发与重定向
java·服务器·数据库
小嘉丶学长15 分钟前
Day13 · 列表与元组
linux·运维·服务器·开发语言·python
时间售卖铺18 分钟前
MySQL事务ACID与隔离级别深度解析
运维·数据库·mysql·云原生
boy快快长大31 分钟前
EasyTier初次使用
服务器
中屹指纹浏览器svip34 分钟前
指纹浏览器RPA自动化靠谱吗?先分清适用边界
运维·自动化·rpa
zuiyuewentian38 分钟前
借助 AI 在 Win11 上搭建 Rocky Linux:用 Visual Studio 直接调试 Linux 服务
linux·运维·visual studio
牢姐与蒯41 分钟前
WSL2 迁移教程:把Ubuntu+WSL2从C盘挪到别的盘
linux·运维·服务器·网络·ubuntu·1024程序员节
垆边人似月.43 分钟前
RDMA 文件传输踩坑(二):为什么 `sleep()` 不能保证接收端准备好了?
linux·服务器·网络·rdma
zxanz11 小时前
证书运维自动化,守住业务 HTTPS 底线
运维·https·自动化