HAProxy配置

作者: JeremyWei
網址: http://weizhifeng.net/using-haproxy.html

前言
Haproxy是一個負載均衡服務器,能夠提供4層,7層代理,並能支持上萬級別的連接,你可以直接在WEB服務器前端加上它,而不影響應用的訪問,完全透明。

安裝

$ wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
$ tar -zxvf haproxy-1.4.8.tar.gz
$ cd haproxy-1.4.8
$ ./configure --prefix=/path/to/haproxy
$ make && make install

配置
首先要添加haproxy:haproxy用戶:

$ groupadd haproxy
$ useradd -g haproxy haproxy

查看uid和gid

$ sudo cat /etc/passwd |grep haproxy

編輯haproxy.cfg,添加如下內容:

global
log 127.0.0.1 local3
maxconn 4096 #最大連接數
chroot /path/to/haproxy #安裝目錄
uid 535 #用戶haproxy
gid 520 #組haproxy
daemon #守護進程運行
nbproc 1 #進程數量
pidfile logs/haproxy.pid

defaults

log 127.0.0.1 local3
mode http #layer 7代理
option httplog
option httpclose
option dontlognull
option forwardfor
retries 2
maxconn 2000
balance roundrobin
stats uri /haproxy-stats
contimeout 5000
clitimeout 50000
srvtimeout 50000

frontend http-in

bind *:80 #監聽地址
default_backend pool1

backend pool1

option httpchk GET /test.php #用來做健康檢查
stats refresh 2
server server1 192.168.1.1:82 weight 3 maxconn 32 check #check表示對這個server進行健康檢查
server server2 192.168.1.2:82 weight 3 maxconn 32 check

 

查看後端server狀態: http://example.com/haproxy-stats

啟動

$ sudo ./sbin/haproxy -f haproxy.cfg

重啟

$ sudo ./sbin/haproxy -f haproxy.cfg -st `cat logs/haproxy.pid`

日誌問題
有童鞋說日誌怎麼也寫不進去,我也遇到了這個問題,在這里分享下。編輯/etc/syslog.conf文件,添加:

local3.* /var/log/haproxy.log

編輯/etc/sysconfig/syslog文件,把

SYSLOGD_OPTIONS="-m 0"

改成

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

重啟syslogd:

/etc/init.d/syslog restart

通過tail應該可以看到日誌輸出了:

tail -f -n 30 /var/log/haproxy.log

參考:

http://blog.chenlb.com/2009/06/install-haproxy-and-configure-load-balance.html

http://haproxy.1wt.eu/download/1.4/doc/configuration.txt

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料