zoukankan      html  css  js  c++  java
  • HAProxy安装文档

    HAProxy安装文档


    一、环境说明

    系统环境:CentOS Linux release 7.2.1511 (Core)

    系统内核:3.10.0-327.el7.x86_64

    软件:haproxy-1.5.8.tar.gz

    安装方式:源码编译安装

    安装位置:/usr/local/haproxy

    官方文档: http://cbonte.github.io/haproxy-dconv/1.5/configuration.html

    二、安装配置

    1.创建用户

    $ sudo useradd -M -s /sbin/nologin www
    

    2.安装

    $ sudo wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.8.tar.gz
    $ sudo tar zxf haproxy-1.5.8.tar.gz -C /usr/local/
    $ sudo cd /usr/local/haproxy-1.5.8/
    $ sudo make TARGET=linux2628  ARCH=X86_64  PREFIX=/usr/local/haproxy 
    $ sudo make install PREFIX=/usr/local/haproxy
    

    执行过程:

    install -d /usr/local/haproxy/sbin
    install haproxy /usr/local/haproxy/sbin
    install haproxy-systemd-wrapper /usr/local/haproxy/sbin
    install -d /usr/local/haproxy/share/man/man1
    install -m 644 doc/haproxy.1 /usr/local/haproxy/share/man/man1
    install -d /usr/local/haproxy/doc/haproxy
    for x in configuration architecture haproxy-en haproxy-fr; do 
            install -m 644 doc/$x.txt /usr/local/haproxy/doc/haproxy ; 
    done
    
    And on a recent Linux >= 2.6.28 with SSL and ZLIB support :
    
        $ make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1
    

    3.创建配置文件和启动文件

    $ sudo mkdir -pv /usr/local/haproxy/conf
    $ sudo cp /usr/local/haproxy-1.5.8/examples/haproxy.cfg /usr/local/haproxy/conf/
    $ sudo cp /usr/local/haproxy-1.5.8/examples/haproxy.init /etc/init.d/haproxy
    $ sudo sed -i 's#etc/$BASENAME#usr/local/haproxy/conf#g' /etc/init.d/haproxy 
    $ sudo chmod +x /etc/init.d/haproxy
    $ sudo ln -sv /usr/local/haproxy/sbin/haproxy /usr/sbin/
    

    三、编辑配置文件

    vim  /usr/local/haproxy/conf/haproxy.cfg
    global 
       log 127.0.0.1 local0
       maxconn 65535			##最大连接数
       user www                         
       group www 
       daemon
       nbproc 1    
       pidfile /var/run/haproxy.pid 
    defaults
        mode                    http
        log                     global
        option httpclose
        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                 65535
     
    listen rabbitmq_cluster 0.0.0.0:56720
        mode tcp
        balance roundrobin
        #option httpclose
        option tcplog
        option clitcpka 
        server   rqslave1 tst-service-test1:5672 check inter 2000 rise 2 fall 3   
        server   rqslave2 tst-service-test2:5672 check inter 2000 rise 2 fall 3 
        ##服务器定义(check指健康状况检查,inter 2000指检测频率;rise 2指从离线状态转换至正常状态需要成功检查的次数;fall 3指失败3次即认为服务器不可用)
        
    frontend mq.test.dev
            mode http
            option httplog
            option http-keep-alive
            bind 0.0.0.0:80
            default_backend mq-backend
    backend mq-backend
            server node1 192.168.199.182:15672 check inter 2000 rise 2 fall 3
            server node2 192.168.199.183:15672 check inter 2000 rise 2 fall 3
            server node3 192.168.199.200:15672 check inter 2000 rise 2 fall 3
            
    listen admin_stats     ##监控页面设置
            mode http      ##http的7层模式
            bind 0.0.0.0:1080 #监听端口  
            option httplog #采用http日志格式  
            stats refresh 30s #统计页面自动刷新时间  
            stats uri /stats #统计页面url  
            stats realm Haproxy Manager #统计页面密码框上提示文本  
            stats auth admin:admin #统计页面用户名和密码设置  
            #stats hide-version #隐藏统计页面上HAProxy的版本信息
    

    四、启动HAproxy

    $ sudo /etc/init.d/haproxy start
    或者
    $ sudo systemctl start haproxy.service
    或者
    $ sudo /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
    

    登录状态页面:

    在浏览器输入 http:IP:1080/stats

    五、配置日志

    haproxy的日志是结合系统的rsyslog程序来生成的。

    1.配置rsyslog

    修改文件:/etc/rsyslog.conf
    增加一行:

    $IncludeConfig /etc/rsyslog.d/*.conf
    

    取消下面两行的注释,开启514端口

     $ModLoad imudp
     $UDPServerRun 514
    

    2.创建haprxoy日志配置

    配置文件为:/etc/rsyslog.d/haproxy.conf

    # vim  /etc/rsyslog.d/haproxy.conf
    local0.*     /var/log/haproxy/haproxy.log
    

    3.开启远程日志

    配置文件为:etc/sysconfig/rsyslog

    # vim etc/sysconfig/rsyslog
    把  SYSLOGD_OPTIONS=""         修改为: SYSLOGD_OPTIONS="-c 2 -m 0 -r -x"
    

    解释说明:

    -r:打开接受外来日志消息的功能,其监控514 UDP端口;
    -x:关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
    -m:修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次"--MARK--"信息;
    -h:默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开
    

    4.haproxy开启日志配置

    最简单的就是这个了,
    当然也可以配置在global,frontend,listen 分别记录各自的日志
    日志级别分为:emerg 、alert 、crit 、err、 warning 、notice 、info 、debug

    global    
       log 127.0.0.1:514 local0 err 
    

    5.重启rsyslog 和 haproxy

    # systemctl restart rsyslog.service 
    # systemctl restart haproxy.service
    

    6.举例

    查看haproxy关于日志的配置

    global    
       log 127.0.0.1:514 local0 notice
       
    listen rabbitmq_cluster
        mode tcp
        option tcplog
        log 127.0.0.1:514 local1 info
    
    frontend mq.xxx.dev
        mode http
        option httplog
        log 127.0.0.1:514 local2 info
    

    查看/etc/rsyslog.d/haproxy.conf

    $ sudo  cat /etc/rsyslog.d/haproxy.conf
    
    #Haproxy 
    local0.* /var/log/haproxy/haproxy.log
    local1.* /var/log/haproxy/haproxy.mq_cluster.log
    local2.* /var/log/haproxy/haproxy.mq_admin.log
    #end /etc/rsyslog.conf
    

    这样配置就会生成3个日志文
    haproxy.loghaproxy.mq_cluster.loghaproxy.mq_admin.log 前提是有日志生成才行。

    六、遇到问题

    问题1:

    localhost haproxy[14616]: /etc/rc.d/init.d/haproxy: 第 26 行:[: =: 期待一元表达式

    解决方法:

    方法一:

    把原句子修改为:

    [[ ${NETWORKING} = "no" ]] && exit 0
    

    方法二:

    把原句子修改为:

    
    [ "${NETWORKING}"x = "no"x ] && exit 0
    

    参考:
    http://blog.csdn.net/goodlixueyong/article/details/6564591

    问题2:

    src/ssl_sock.c:41:25: fatal error: openssl/ssl.h: No such file or directory

    解决方法:

    $ sudo yum install openssl-devel  
    

    参考文档

    http://www.haproxy.org/
    http://www.haproxy.org/download/1.8/doc/configuration.txt
    http://cbonte.github.io/haproxy-dconv/1.8/configuration.html
    下载地址
    http://www.haproxy.org/download/

    转载请注明出处,运维特工 www.unixfbi.com

  • 相关阅读:
    jquery 插件扩展2
    jquery 插件扩展
    call apply bind
    bom object
    js oop 封装
    js oop 继承
    js页面之间传参2
    js弹出新窗口的6中方法
    display Tag
    js中extends方法
  • 原文地址:https://www.cnblogs.com/pangguoping/p/7647091.html
Copyright © 2011-2022 走看看