Haproxy
Client eth0:192.168.122.1/24
HAproxy eth0:192.168.122.254/24
HTML 1 eth0 192.168.122.10/24
HTML 2 eth0192.168.122.20/24
PHP 1 eth0 192.168.122.30/24
PHP 2 eth0 192.168.122.40/24
HTML 1和2
# yum install httpd
分别建立測試頁面index.html ,開啟服務
PHP 1和2
# yum install httpd php
分别建立測試頁面index.php ,開啟服務
安裝HAproxy
# tar xf haproxy-1.4.20.tar.gz
# cd haproxy-1.4.20
# make TARGET=linux26PREFIX=/usr/local/haproxy install
生成HAproxy配置檔案
# cd /usr/local/haproxy/
# mkdir conf logs
# cd conf/
# vim haproxy.cfg
global
log127.0.0.1 local3 info #日志伺服器
maxconn4096 #單個程序的最大并發連接配接數
uidnobody #使用者身份
gidnobody #組身份
daemon #守護程序方式背景運作
nbproc1 #工作程序數量
defaults
log global
mode http #工作模式 http ,tcp 是 4 層,http是 7 層
maxconn2048 #最大連接配接數
retries 3 #3次連接配接失敗就認為伺服器不可用
option redispatch #如果 cookie 寫入了 serverId 而用戶端不會重新整理 cookie,當serverId 對應的伺服器挂掉後,強制定向到其他健康的伺服器
stats uri /haproxy #使用浏覽器通路 http://192.168.122.254/haproxy,可以看到伺服器狀态
contimeout 5000
clitimeout 50000
srvtimeout 50000
frontendhttp-in
bind0.0.0.0:80
modehttp
logglobal
optionhttplog
optionhttpclose #打開支援主動關閉功能
acl php url_reg -i \.php$ #acl <ACL名字> <類型> <大小寫> <規則>
acl html url_reg -i \.html$ #use_backend <伺服器組> if <ACL名字>
use_backend php-server if php
use_backend html-server if html
default_backend html-server #預設使用的伺服器組
backendphp-server
balanceroundrobin #負載均衡的方式
optionhttpchk GET /index.php #健康檢查
cookieSERVERID insert indirect nocache #用戶端的 cookie 資訊
serverphp-A 192.168.122.30:80 weight 1 cookie 1 check inter 2000 rise 2 fall 5
serverphp-B 192.168.122.40:80 weight 1 cookie 2 check inter 2000 rise 2 fall 5
#cookie1 辨別 serverid 為 1
#checkinter 2000 檢測心跳頻率
#rise2 2 次正确認為伺服器可用
#fall5 5 次失敗認為伺服器不可用
backendhtml-server
balanceroundrobin
optionhttpchk GET /index.html
cookieSERVERID insert indirect nocache
serverhtml-A 192.168.122.10:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
serverhtml-B 192.168.122.20:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5
啟動HAproxy
# /usr/local/haproxy/sbin/haproxy -f/usr/local/haproxy/conf/haproxy.cfg
檢視HAproxy狀态
# firefox http://localhost/haproxy
在用戶端通路 HAproxy測試
# elinks –dump http:// 192.168.122.254
# elinks –dump http://192.168.122.254/index.html
# elinks –dump http://192.168.122.254/index.php
你可以隻做2個html的服務然後在client段通路192.168.122.254 可以看到html 1裡的index.html 内容清楚曆史通路記錄然後在浏覽192.168.122.254 可以看到html 2裡的index.html 内容如果沒看到那就多做幾次重新整理下搭建haproxy的伺服器80端口不能被占用否則報錯
軟體包 看其他博文的最下面 給的百度雲盤位址
本文轉自潘闊 51CTO部落格,原文連結:http://blog.51cto.com/pankuo/1389314,如需轉載請自行聯系原作者