• haproxy安装步骤及注意事项


    .安装篇

    安装环境:(可使用 lsb_release -a 查看具体版本号)

    LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch

    Distributor ID: CentOS

    Description:    CentOS release 5.4 (Final)

    Release:        5.4

    Codename:     Final

    步骤:

    #wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.19.tar.gz

    #tar -xvzf haproxy-1.4.19.tar.gz

    #cd haproxy-1.4.19

    #make TAEGET=linux26 PREFIX=/usr/local/haproxy #设置linux内核版本号(可使用 uname -r 查看) 与 安装路径 

    注意事项:

    #安装的时候,需要gcc的支持,要确定本机已经安装gcc 。可使用 yum install gcc 来安装。

    #yum 的源 有问题,请参考:http://www.linuxdiyf.com/viewarticle.php?id=70630

    #安装完成后会在安装目录下生成doc sbin share三个文件夹。解压的源码文件也可以删除掉。

    .配置篇

    1.安装完毕后,进入安装目录配置文件

    # mkdir conf

    # vim haproxy.cfg (可参照源文件中的examples 中的 haproxy.cfg 来书写)

    我的配置:

    global      #全局设置

    maxconn  5120  #最大连接数

    chroot   /home/haproxy/haproxy

    uid      500 #所属运行的用户uid

    gid      500 #所属运行的用户组

    daemon   #一后台的形式运行haproxy

    quiet    #安静模式,启动时无输出

    #debug   #调试模式,输出启动信息到标准输出

    nbproc   2 #启动2haproxy 实例

    pidfile  /home/haproxy/haproxy/haproxy.pid  #将所有进程写入pid文件

    ########################################################

    defaults   #默认设置

    log     global

    log     127.0.0.1  local3  #日志文件的输出定向 请查看下面的日志配置

    mode    http   #所处理的类别,默认采用http模式,可配置成tcp4层消息转发

    option  httplog  #日志类别,采用httplog

    option  dontlognull

    option  redispatch  #serverid 对应的服务器挂掉后,强制定向到其它健康的服务器

    retries 3

    maxconn 3000  #最大连接数

    contimeout 5000 #连接超时时间

    clitimeout 50000 #客户端连接超时时间

    srvtimeout 50000 #服务器段连接超时时间

    ##########################################################

    listen localhost 0.0.0.0:1081 #对外开放的接口,也就是我们在浏览器中请求的接口

    mode    http

    #   mode    tcp

    balance roundrobin #负载均衡算法  请参考后面的负载均衡算法

    option  forwardfor  #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip

    option  httpclose   #每次请求完毕后主动关闭http通道,ha-proxy不支持keep-alive,只能模拟这种模式的实现

    option  httpchk GET /index.html

    server web1 10.11.246.223:8080  cookie 1 check inter 5000 fall 3 rise 2 weight 1

    server web2 10.11.246.189:8090  cookie 2 check inter 5000 fall 3 rise 2 weight 1

    #cookie 1表示serverid1check inter 1500 是检测心跳频率

    #rise 22次正确认为服务器可用,fall 33次失败认为服务器不可用,weight代表权重

    ##########################################################

    listen status 0.0.0.0:8081 #haproxy 监控页面的访问地址

    stats enable

    stats uri /admin    #可使用:http://ip:8081/admin 访问

    stats auth admin:admin # 用户名,密码

    stats realm Haproxy \ statistic

    2.日志配置

    日志问题:有日志怎么也写不进去的,在这里分享下解决方案。

    vi /etc/syslog.conf

    添加 local3.* /var/log/haproxy.log

    vi /etc/sysconfig/syslog

    SYSLOGD_OPTIONS="-m 0"

    改成 SYSLOGD_OPTIONS="-r -m 0" #enables logging from remote machines

    重启syslogd: /etc/init.d/syslog restart

    tail -f -n 30 /var/log/haproxy.log 应该可以看到日志输出了。

    3.启动

    进入到 sbin 文件夹中 ./haproxy -f ../conf/haproxy.cfg

    错误提示:

    这时有可能会遇到问题,大部分为 端口被占用之类的。可使用 netstat -tulpn 来查看

    可以用 ps aux 来查看进程

    4访问监测页面:

    http://ip:8081/admin

    错误提示:

    若不能访问,请确定主机的防火墙已经开放了我们要访问的端口。可使用 /etc/init.d/iptables stop 命令简单的关闭防火墙,也可开放相应的端口 请参考:

    http://www.ylmf.net/linux/tips/2011021622603.html

    5.简单的压力测试:webbench

    请参考:http://blog.s135.com/post/288/

    6负载均衡算法

    HAProxy的算法有如下8种:

    一、roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;

    二、static-rr,表示根据权重,建议关注;

    三、leastconn,表示最少连接者先处理,建议关注;

    四、source,表示根据请求源IP,建议关注;

    五、uri,表示根据请求的URI;

    六、url_param,表示根据请求的URl参数'balance url_param' requires an URL parameter name

    七、hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;

    八、rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

    其实这些算法各有各的用法,平时应用得比较多的应该是roundrobinsourcelestconn

  • 相关阅读:
    Qt:绘制时,用线性渐变填充一个圆角矩形范围
    记录一个mysql数据迁移的坑
    idea中添加jar,maven有时候无法引入到jar
    img引入base64格式图片
    URL特殊符号转码_encodeURI/decodeURI
    [js] eval函数
    Modernizr
    判断对象上是否存在指定key
    Linux下格式化大于2T硬盘的方法
    win10 别人无法ping通本机设置
  • 原文地址:https://www.cnblogs.com/qgxiaoguang/p/2438123.html
Copyright © 2020-2023  润新知