博客
关于我
使用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/

    你可能感兴趣的文章
    Openlayers实战:判断共享单车是否在电子围栏内
    查看>>
    Openlayers实战:加载Bing地图
    查看>>
    Openlayers实战:绘制图形,导出geojson文件
    查看>>
    Openlayers实战:绘制图形,导出KML文件
    查看>>
    Openlayers实战:绘制多边形,导出CSV文件
    查看>>
    Openlayers实战:绘制带箭头的线
    查看>>
    Openlayers实战:输入WKT数据,输出GML、Polyline、GeoJSON格式数据
    查看>>
    Openlayers实战:非4326,3857的投影
    查看>>
    Openlayers高级交互(10/20):绘制矩形,截取对应部分的地图并保存
    查看>>
    Openlayers高级交互(11/20):显示带箭头的线段轨迹,箭头居中
    查看>>
    Openlayers高级交互(13/20):选择左右两部分的地图内容,横向卷帘
    查看>>
    Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
    查看>>
    Openlayers高级交互(15/20):显示海量多边形,10ms加载完成
    查看>>
    Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
    查看>>
    Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
    查看>>
    Openlayers高级交互(18/20):根据feature,将图形适配到最可视化窗口
    查看>>
    Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
    查看>>
    Openlayers高级交互(2/20):清除所有图层的有效方法
    查看>>
    Openlayers高级交互(20/20):超级数据聚合,页面不再混乱
    查看>>
    Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
    查看>>