博客
关于我
使用haproxy搭建web群集
阅读量:755 次
发布时间:2019-03-23

本文共 2308 字,大约阅读时间需要 7 分钟。

haproxy群集调度配置详细指南

前置知识点

1. HTTP请求

通过URL访问网站,使用协议是HTTP协议。HTTP请求分为GET和POST方式。当访问某个URL时,会返回状态码,状态码分为2XX(如200、201、202)、3XX(如301、302)和4XX、5XX(如401、403、404、500、501等)。

2. 负载均衡常用调度算法

负载均衡有多种调度算法,常见的有:

  • RR(Round Robin轮询):轮询调度,逐一分配访问请求。

    • 例如:节点a、b、c,第一个请求到a,第二个到b,第三个到c,第四个回到a。
  • LC(Least Connections最小连接数):根据后端节点连接数动态分配前端请求。

    • 优点:连接数最少的节点处理新请求,节点连接数动态调整。
  • SH(Source Hashing基于来源调度):基于来源IP或Cookie进行调度。

    • 适用于有会话记录的场景,但可能引起某些节点访问量过大。
  • 3. 常见Web群集调度器

    目前主要分为软件和硬件两类:

    • 软件:如LVS、Haproxy、Nginx等开源工具,Haproxy性能最佳但配置复杂。
    • 硬件:如F5、梭子鱼、绿盟等,常用于企业级负载均衡。

    Haproxy群集调度器配置示例

    1. 安装Nginx服务器

    # 安装依赖包yum -y install pcre-devel zlib-devel# 创建用户组并进入目录useradd -s /sbin/nologin nginxtar zxf nginx-1.12.0.tar.gzcd /usr/src/nginx-1.12.0./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make installln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx -techo "192.168.1.10" > /usr/local/nginx/html/index.htmlnginx

    2. 搭建Nginx2

    # 参考上述步骤操作#Awareness: Nginx默认路径:/usr/local/nginx/html

    3. 编译安装Haproxy

    # 安装依赖包yum -y install pcre-devel bzip2-devel# 安装Haproxytar zxf haproxy-1.5.19.tar.gz -C /usr/srccd /usr/src/haproxy-1.5.19make TARGET=linux26 && make install

    4. Haproxy配置

  • 创建配置文件目录
  • mkdir -p /etc/haproxycp examples/haproxy.cfg /etc/haproxy/
    1. 配置Haproxy文件
    2. global  log /dev/log local0 info  log /dev/log local0 notice  maxconn 4096  uid 99  gid 99  daemondefaults  log global  mode http  option httplog  option dontlognull  retries 3  redispatch  maxconn 2000  timeout connect 5000  timeout client 50000  timeout server 50000listen webserver 0.0.0.0:80  option httpchk GET /index.html  balance roundrobin  server inst1 192.168.1.10:80 check inter 2000 fall 3  server inst2 192.168.1.20:80 check inter 2000 fall 3

      5. 创建自启动脚本

      # 添加启动脚本cp examples/haproxy.init /etc/init.d/haproxyln -s /usr/local/sbin/haproxy /usr/sbin/haproxychmod +x /etc/init.d/haproxy# 启动服务chkconfig --add /etc/init.d/haproxy/etc/init.d/haproxy start# 停止firewalldsystemctl stop firewalld

      6. 测试Haproxy

      # 重启服务确保配置生效/etc/init.d/haproxy restart

      7. Haproxy日志优化

    3. 修改日志目录
    4. vim /etc/rsyslog.d/haproxy.confv /programname==haproxy and $syslogseverity-text==info /var/log/haproxy/haproxy-info.logv /programname==haproxy and $syslogseverity-text==notice /var/log/haproxy/haproxy-notice.log
      systemctl restart rsyslog.service/etc/init.d/haproxy restart

      8. 查看日志

      cat /var/log/haproxy/haproxy-info.log

    转载地址:http://tgizk.baihongyu.com/

    你可能感兴趣的文章
    MySql 创建函数 Error Code : 1418
    查看>>
    MySQL 创建新用户及授予权限的完整流程
    查看>>
    mysql 创建表,不能包含关键字values 以及 表id自增问题
    查看>>
    mysql 删除日志文件详解
    查看>>
    mysql 判断表字段是否存在,然后修改
    查看>>
    MySQL 到底能不能放到 Docker 里跑?
    查看>>
    mysql 前缀索引 命令_11 | Mysql怎么给字符串字段加索引?
    查看>>
    MySQL 加锁处理分析
    查看>>
    mysql 协议的退出命令包及解析
    查看>>
    mysql 参数 innodb_flush_log_at_trx_commit
    查看>>
    mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
    查看>>
    MySQL 命令和内置函数
    查看>>
    mysql 四种存储引擎
    查看>>
    MySQL 在并发场景下的问题及解决思路
    查看>>
    MySQL 基础架构
    查看>>
    MySQL 基础模块的面试题总结
    查看>>
    MySQL 备份 Xtrabackup
    查看>>
    mYSQL 外键约束
    查看>>
    mysql 多个表关联查询查询时间长的问题
    查看>>
    mySQL 多个表求多个count
    查看>>