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

相关推荐
CIb0la几秒前
数字时代,传统碟片的销量不减反增
运维·生活
wanhengidc22 分钟前
云手机 开发测试中的便捷工具
运维·服务器·科技·智能手机·云计算
HalvmånEver33 分钟前
Linux:基础IO(终)
linux·运维·c++·学习·缓冲区·libc
老蒋新思维1 小时前
创客匠人:小团队的知识变现革命 —— 超级个体 + 多智能体如何重构组织价值
服务器·网络·人工智能·重构·创始人ip·创客匠人·知识变现
qq_310658511 小时前
mediasoup源码走读(十一)——consumer
服务器·c++·音视频
大江东第一深情1 小时前
Origin 2024 进行语言切换后仍然显示为英文
运维·前端
Sleepy MargulisItG1 小时前
【Linux网络编程】应用层自定义协议与序列化
linux·服务器·网络·网络协议·tcp/ip
CSDN官方博客1 小时前
CSDN社区镜像创作活动
大数据·运维·人工智能
Kiri霧1 小时前
Go Defer语句详解
java·服务器·golang
石小千2 小时前
Ubuntu24.04 安装Docker
运维·docker·容器