博客
关于我
使用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 CONCAT()函数拼接有NULL
    查看>>
    multiprocessing.Manager 嵌套共享对象不适用于队列
    查看>>
    multiprocessing.pool.map 和带有两个参数的函数
    查看>>
    MYSQL CONCAT函数
    查看>>
    multiprocessing.Pool:map_async 和 imap 有什么区别?
    查看>>
    MySQL Connector/Net 句柄泄露
    查看>>
    multiprocessor(中)
    查看>>
    mysql CPU使用率过高的一次处理经历
    查看>>
    Multisim中555定时器使用技巧
    查看>>
    MySQL CRUD 数据表基础操作实战
    查看>>
    multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
    查看>>
    mysql csv import meets charset
    查看>>
    multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
    查看>>
    MySQL DBA 数据库优化策略
    查看>>
    multi_index_container
    查看>>
    MySQL DBA 进阶知识详解
    查看>>
    Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
    查看>>
    Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
    查看>>
    mysql deadlock found when trying to get lock暴力解决
    查看>>
    MuseTalk如何生成高质量视频(使用技巧)
    查看>>