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规则实现智能负载均衡(动静分离)

相关推荐
_下雨天.34 分钟前
Nginx性能调优与深度监控
运维·nginx
皮卡蛋炒饭.1 小时前
进程得控制
linux·运维·服务器
weiwx831 小时前
Nginx location 和 proxy_pass 配置详解
服务器·网络·nginx
西门吹-禅2 小时前
【sap fiori cds up error】
java·服务器·sap cap cds
带娃的IT创业者3 小时前
WeClaw 日志分析实战:如何从海量日志中快速定位根因?
运维·python·websocket·jenkins·fastapi·架构设计·实时通信
杨云龙UP4 小时前
Oracle ASM磁盘组空间分配与冗余理解
linux·运维·数据库·sql·oracle
互成4 小时前
加密系统哪款最好用?2026年五款加密系统深度对比测评
运维·网络·安全
minji...4 小时前
Linux 库制作与原理(三)深入动静态链接原理
linux·运维·服务器·c++
CDN3604 小时前
游戏服稳定运行:360CDN SDK 游戏盾实测体验
运维·游戏·网络安全
安逸sgr4 小时前
Agent 记忆系统完整实现(二):记忆系统架构全景——分层设计与核心模块!
ai·系统架构·大模型·aigc·负载均衡·agent