zoukankan      html  css  js  c++  java
  • haproxy做tcp 层的负载均衡

    首先下载haproxy包:

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

    安装:

    tar zxvf haproxy-1.4.13.tar.gz

    make TARGET=linux26 PREFIX=/usr/local/haproxy  ##我的系统内核为2.6,所以target=linux26

    make install PREFIX=/usr/local/haproxy

    然后进行配置:

    vi /etc/haproxy/haproxy.cfg

    ##写入以下内容:

    复制代码
    ###########全局配置#########
    global
    daemon
    nbproc
    1
    pidfile
    /var/run/haproxy.pid


    ########默认配置############
    defaults
    mode http #默认的模式mode { tcp
    |http|health },tcp是4层,http是7层,health只会返回OK
    retries
    2 #两次连接失败就认为是服务器不可用,也可以通过后面设置
    option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
    maxconn
    4096 #默认的最大连接数
    timeout connect 5000ms #连接超时
    timeout client 30000ms #客户端超时
    timeout server 30000ms #服务器超时
    #timeout check
    2000 #=心跳检测超时
    log
    127.0.0.1 local0 err #[err warning info debug]


    ########统计页面配置########
    listen admin_stats
    bind
    0.0.0.0:1080 #监听端口
    mode http #http的7层模式
    option httplog #采用http日志格式
    #log
    127.0.0.1 local0 err
    maxconn
    10
    stats refresh 30s #统计页面自动刷新时间
    stats uri
    /stats #统计页面url
    stats realm XingCloud\ Haproxy #统计页面密码框上提示文本
    stats auth admin:admin #统计页面用户名和密码设置
    stats hide
    -version #隐藏统计页面上HAProxy的版本信息


    ########test1配置#################
    listen test1
    bind
    0.0.0.0:90
    mode tcp
    #maxconn
    4086
    #log
    127.0.0.1 local0 debug
    server s1
    10.18.138.201:80
    server s2
    10.18.102.190:80
    server s3
    10.18.102.189:80
    server s4
    10.18.102.188:80
    server s5
    10.18.102.187:80
    ########frontend配置##############


    ########test2配置#################
    listen test2
    bind
    0.0.0.0:91
    mode tcp
    #maxconn
    4086
    #log
    127.0.0.1 local0 debug
    server s1
    10.18.138.130:80 weight 1
    server s2
    10.18.138.201:8080 weight 6
    ########frontend配置##############
    复制代码


    ok. 启动haproxy.

    haproxy /etc/haproxy/haproxy.cfg

    马上试试, 发现负载已经成功了。 

    但是有一个问题, 不能看到log.     是因为我没有启动syslog.

    在ubuntu下, 需要启动的是rsyslogd.

    我的机器上没有安装,先安装rsyslogd.

    apt-get install rsyslog


    安装完成之后,配置rsyslog

    vi /etc/rsyslog.d/haproxy.conf

    加入以下内容:

    $ModLoad imudp
    $UDPServerRun 514

    local0.* /var/log/haproxy.log

    保存, 重启rsyslogd.

    restart rsyslogd

    ok.现在你就可以看到日志了。


    试试看。

    tail -f /var/log/haproxy.log

    最后,再加一个平滑重启的命令:

    haproxy -f /etc/haproxy/haproxy.cfg -sf `cat /var/run/haproxy.pid`

  • 相关阅读:
    android29
    android28
    android27
    android26
    Dynamics CRM2011 MspInstallAction failed when installing an Update Rollup
    Dynamics CRM Import Solution Attribute Display Name description is null or empty
    The service cannot be activated because it does not support ASP.NET compatibility
    IIS部署WCF报 无法读取配置节“protocolMapping”,因为它缺少节声明
    Unable to access the IIS metabase.You do not have sufficient privilege
    LM算法与非线性最小二乘问题
  • 原文地址:https://www.cnblogs.com/ylqmf/p/2736979.html
Copyright © 2011-2022 走看看