HAProxy安裝文檔

HAProxy安裝文檔

[TOC]java

1、環境說明

系統環境:CentOS Linux release 7.2.1511 (Core)node

系統內核:3.10.0-327.el7.x86_64linux

軟件:haproxy-1.5.8.tar.gzgit

安裝方式:源碼編譯安裝github

安裝位置:/usr/local/haproxyredis

官方文檔: http://cbonte.github.io/haproxy-dconv/1.5/configuration.htmlvim

2、安裝配置

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/

3、編輯配置文件

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的版本信息

4、啓動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

5、配置日誌

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 前提是有日誌生成才行。

6、遇到問題

問題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

相關文章
相關標籤/搜索