博客
关于我
使用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 数据库中 count(*),count(1),count(列名)区别和效率问题
    查看>>
    mysql 数据库备份及ibdata1的瘦身
    查看>>
    MySQL 数据库备份种类以及常用备份工具汇总
    查看>>
    mysql 数据库存储引擎怎么选择?快来看看性能测试吧
    查看>>
    MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作
    查看>>
    MySQL 数据库的高可用性分析
    查看>>
    MySQL 数据库设计总结
    查看>>
    Mysql 数据库重置ID排序
    查看>>
    Mysql 数据类型一日期
    查看>>
    MySQL 数据类型和属性
    查看>>
    mysql 敲错命令 想取消怎么办?
    查看>>
    Mysql 整形列的字节与存储范围
    查看>>
    mysql 断电数据损坏,无法启动
    查看>>
    MySQL 日期时间类型的选择
    查看>>
    Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
    查看>>
    MySQL 是如何加锁的?
    查看>>
    MySQL 是怎样运行的 - InnoDB数据页结构
    查看>>
    mysql 更新子表_mysql 在update中实现子查询的方式
    查看>>
    MySQL 有什么优点?
    查看>>
    mysql 权限整理记录
    查看>>