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

相关推荐
YC运维3 小时前
Dockerfile实战案例详解
运维·docker·容器
一个响当当的名号3 小时前
一些主要应用和NAT
运维·服务器·网络
@小博的博客3 小时前
【Linux探索学习】第二篇Linux的基本指令(2)——开启Linux学习第二篇
linux·运维·学习
筵陌5 小时前
深入理解 Reactor 反应堆模式:高性能网络编程的核心
服务器
做运维的阿瑞7 小时前
Linux系统性能监控与故障定位实战:CPU/内存/I/O/网络
linux·运维·网络
阿沁QWQ7 小时前
MySQL服务器配置与管理
服务器·数据库·mysql
wanhengidc7 小时前
云手机能够做些什么?
运维·服务器·人工智能·智能手机·云计算
2401_865854887 小时前
腾讯云手机适用于哪些人群
服务器
啊?啊?9 小时前
1 玩转Linux命令行:基础文件操作实战教程
linux·服务器·基础指令
筑梦之路9 小时前
CentOS 7 升级perl版本到5.40.3 —— 筑梦之路
linux·运维·centos