• HAProxy简单使用


    一、HAProxy简介及定位

            HAProxy 是一款基于TCP和HTTP应用的具备高可用行且负载均衡的代理软件。HAProxy是完全免费的,借助HAProxy可以快速、可靠地提供基于TCP和HTTP应用的代理解决方案。HAProxy最主要的特点是性能优越,特别使用与负载超重的Web站点,这些站点通常需要会话保持或七层处理。HAProxy完全可以支持数以万计的并发连接。并且HAProxy的运行模式使其可以简单、安全的将信息整合进当前的架构中,同时保护后面的Web服务器不被暴露。

             HAProxy具有反向代理服务器等功能,配置简单,拥有非常不错的服务器健康检查功能。档期代理的后段服务器出现故障时,HAProxy会自动将该服务器摘除,故障恢复后在自动将其加入。

    二、HAProxy与Nginx比较

          同样具有7层负载功能的Nginx和HaProxy有很多相似的方面,比如都有匹配规则等。如果单纯从效率上来讲,HAProxy比Nginx有更出色的负载均衡速度,并且在并发处理上也有于Nginx。

          HAProxy不仅能够弥补Nginx的一些确定,比如Session的保持等工作,并且支持URL检测对于检测,后段服务器出现的问题有很好的帮助。

           Nginx对Big Request Header 的支持不是很好,如果 client_header_buffer_size 设置的数值比较小,就会返回400 Bad Request 的错误页面。

    三、HAProxy的安装

    使用yum安装

    yum install haproxy.x86_64 –y

    安装完成之后就可以启动HAProxy服务

    /etc/init.d/haproxy start

    QQ图片20151102142454

    启动服务之后我们来修改一下配置文件

    QQ截图20151102142615

    global
        #
        #local2                       /var/log/haproxy.log  #日志位置
        #
        log         127.0.0.1 local2 
    
        chroot      /var/lib/haproxy       
        pidfile     /var/run/haproxy.pid      
        maxconn     4000              #最大连接数                      
        user        haproxy           #用户名
        group       haproxy           #组
        daemon
    
        # turn on stats unix socket
        stats socket /var/lib/haproxy/stats
    
    #---------------------------------------------------------------------
    # common defaults that all the 'listen' and 'backend' sections will
    # use if not designated in their block
    #---------------------------------------------------------------------
    defaults
        mode                    http                 #模式
        log                     global               #日志
        option                  httplog              
        option                  dontlognull
        option http-server-close
        option forwardfor       except 127.0.0.0/8
        option                  redispatch
        retries                 3                  #重试次数
        timeout http-request    10s                #请求超时时间
        timeout queue           1m
        timeout connect         10s                #连接超时时间 
        timeout client          1m                  #客户端超时
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 3000                #最大连接数量
        stats uri                /haproxy_status     #监控页面地址
    
    #---------------------------------------------------------------------
    # main frontend which proxys to the backends
    #---------------------------------------------------------------------
    frontend  main *:80   #监听端口
       # acl url_static       path_beg       -i /static /images /javascript /stylesheets
       # acl url_static       path_end       -i .jpg .gif .png .css .js
    
       # use_backend static          if url_static
       # default_backend             app
       acl is_zabbix    path_beg /zabbix              #如果请求是以/zabbix结尾则使用zabbix_app这个应用,实现反向代理
       use_backend          zabbix_app  if is_zabbix
       default_backend       tomcat_app
    
    #---------------------------------------------------------------------
    # static backend for serving up images, stylesheets and such
    #---------------------------------------------------------------------
    #backend static
    #    balance     roundrobin
    #    server      static 127.0.0.1:4331 check
    
    
    backend zabbix_app                           #配置后台应用 zabbix_app
        balance roundrobin
        server  app1 127.0.0.1:8083 check
    
    
    
    
    backend tomcat_app                          #配置后台应用 tomcat_app
        balance roundrobin    #负载均衡方式,使用随机
        server app1 127.0.0.1:8081 check     #服务器1
        server app2 127.0.0.1:8082 check     #服务器2
    
      
    #---------------------------------------------------------------------
    # round robin balancing between the various backends
    #---------------------------------------------------------------------
    backend app
        balance     roundrobin
        server  app1 127.0.0.1:8081 check
        server  app2 127.0.0.1:8082 check
        server  app3 127.0.0.1:8083 check

    重新加载HAProxy的配置文件

    /etc/init.d/harpoxy reload

    然后查看是否安装成功

    在地址栏输入http://192.168.0.65/haproxy_status

    页面如下

    QQ截图20151102144402

    能够看到,我的zabbix_app是正常的,我的tomcat_app没有启动,所以是红色的

    在这个页面能够清楚的看出HAProxy的访问量,总流量

    如有不足,还请指正,谢谢~!

  • 相关阅读:
    在终端聊天
    Vue双向数据绑定的原理
    手动封装on,emit,off
    浅谈Vue中组件传值的几种方式
    常见的一些性能优化的小方法
    常见的一些JS兼容问题
    移动布局的方法
    移动布局的方法
    快速、高效的学习vuex
    移动端300ms延迟原因及解决方案
  • 原文地址:https://www.cnblogs.com/tangkai/p/4924083.html
Copyright © 2020-2023  润新知