天天看點

haproxy(簡稱HA,web負載均衡)

haproxy(簡稱HA)

HAProxy提供高可用性、負載均衡以及基于TCP和HTTP應用的代理,支援虛拟主機,它是免費、快速并且可靠的一種解決方案

<a href="http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz">http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz</a>

# tar zcvf haproxy-1.3.20.tar.gz

# cd haproxy-1.3.20

# vi Makefile

PREFIX = /usr/local/haproxy   (原為PREFIX = /usr/local)

:wq

# make TARGET=linux26

# make install

haproxy應用時有2種方式,linsten方式和frontend+backend方式

方式一(listen):

# vi /usr/local/haproxy/haproxy.cfg

global

log 127.0.0.1 local0

maxconn 4096

chroot /usr/local/haproxy

uid 99 

gid 99 

daemon

nbproc 1

pidfile /usr/local/haproxy/haproxy.pid

defaults

log global

log 127.0.0.1 local3 

option httplog 

option httpclose

option dontlognull

option forwardfor

option redispatch

retries 2 

maxconn 2000

mode http 

stats uri /haproxy-status 

stats auth ming:123456

stats refresh 30s

monitor-uri /site_status

contimeout 5000

clitimeout 50000

srvtimeout 50000

listen web 192.168.1.10:1080

balance roundrobin 

server yang 192.168.1.10:80 check 

server ming 192.168.1.12:80 check

方式二(frontend+backend):

frontend web 192.168.1.10:1080        

default_backend aa   

backend aa  

balance roundrobin     

server yang  192.168.1.10:80 check   

server  ming  192.168.1.12:80 check

啟動haproxy

# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

開機自啟動:

# vi /etc/rc.local

 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

檢視haproxy頁面:

使用者名:ming   密碼:123456

驗證效果:

在2主機上分别建2個頁面1.html  内容寫各自主機ip

<a href="http://192.168.1.10:1080/1.html">http://192.168.1.10:1080/1.html</a>

第一次會顯示192.168.1.10

第二次會顯示192.168.1.12

注:

1、1080是haproxy的端口号,是随意寫的,可改

3、電腦重新開機後/etc/init.d/httpd 會被改為/etc/init.d/httpd.rpmorig ,要自己改回來,chkconfig開機啟動指令也要再重寫一遍,原因不詳

附:

global:參數是程序級的,通常和作業系統(OS)相關

defaults:配置預設參數,這些參數可以被利用配置到frontend,backend,listen元件

frontend:接收請求的前端虛拟節點,Frontend可以根據規則直接指定具體使用後端的 backend(可動态選擇)

backend:後端服務叢集的配置,是真實的伺服器,一個Backend對應一個或者多個實體伺服器

listen:Frontend和Backend的組合體

log 127.0.0.1 local0             使用系統的syslog記錄日志

maxconn 4096                     限制單個程序的最大連接配接數

option redispatch                 在連接配接失敗或斷開的情況下,允許目前會話被重新分發

retries 2                             設定在一個伺服器上連結失敗後的重連次數

balance roundrobin            設定伺服器配置設定算法為輪詢(即交替通路)

option dontlognull              不記錄空連接配接

contimeout 5000               設定等待連接配接到伺服器成功的最大時間

clitimeout 50000              設定用戶端的最大逾時時間

srvtimeout 50000              設定伺服器端的最大逾時時間

nbproc 1                          指定作為守護程序運作的時候,要建立多少個程序,預設隻建立一個,需要daemon開啟模式

daemon                            讓程序在背景運作,即作為守護程序運作,正式運作的時候開啟,此處先禁止,等同于在指令行添加參數 -D

debug                             設定debug模式運作,與daemon模式互斥,等同于在指令行添加參數 -d

1080                                監聽端口(随意)

mode http                         http的7層模式

stats refresh 30s                 統計頁面自動重新整理時間

stats uri /haproxy-stats          統計頁面URL

stats realm Haproxy\ Statistics             統計頁面密碼框上提示文本

stats auth ming:123456               統計頁面使用者名和密碼設定

stats hide-version                      隐藏統計頁面上HAProxy的版本資訊

monitor-uri /site_status         網站健康檢測URL,用來檢測HAProxy管理的網站是否可以用,正常傳回200,不正常傳回500

weight  -- 調節伺服器的負重

check -- 允許對該伺服器進行健康檢查

inter  -- 設定連續的兩次健康檢查之間的時間,機關為毫秒(ms),預設值 2000

rise  -- 指定多少次連續成功的健康檢查後,即可認定該伺服器處于可操作狀态,預設值 2

fall  -- 指定多少次不成功的健康檢查後,認為伺服器為當掉狀态,預設值 3

balance roundrobin     簡單的輪詢

balance source           根據請求的源IP 

balance uri                根據請求的url

balance url_param     根據請求RUL中的參數

本文轉自linux部落格51CTO部落格,原文連結http://blog.51cto.com/yangzhiming/865706如需轉載請自行聯系原作者

yangzhimingg

上一篇: httpdns

繼續閱讀