#########################################################
# haproxy L7 實(shí)戰(zhàn)講解
#date:2010-06-09
#作者:老男孩---《老男孩linux就業(yè)培訓(xùn)中心 》
#QQ:31333741 MAIL:oldboy521@hotmail.com
#QQ交流群:45039636
#blog: http://oldboy.blog.51cto.com
#psite: http://oldboy.cc(即將開(kāi)放)
#pblog:http://blog.etiantian.org
##########################################################
前言:
haproxy 就不多說(shuō)了。是值得信賴的優(yōu)秀的7層轉(zhuǎn)發(fā)軟件。
本人實(shí)際應(yīng)用4000以上萬(wàn)pv的訪問(wèn)量級(jí)站點(diǎn),做L7的整體表現(xiàn)和F5/netscaler等硬件負(fù)載均衡比,毫不遜色。
當(dāng)然,這需要一個(gè)好的架構(gòu)體系和比較優(yōu)的配置優(yōu)化。
主要體現(xiàn)在可維護(hù)性,自主掌控能力,價(jià)格,擴(kuò)展能力,靈活性等N多方面
本文針對(duì) 玩過(guò)haproxy的哥們,因此 就不基礎(chǔ)掃盲工作了。望大家諒解,問(wèn)題可以進(jìn)群和大家交流。
有想了解初級(jí)內(nèi)容的,請(qǐng)關(guān)注我年底將要出版的書(shū)籍,暫定名 《老男孩的linux運(yùn)維筆記》
#######################################################
haproxy 7層負(fù)載均衡代理轉(zhuǎn)發(fā)實(shí)戰(zhàn)講解(一) 之301跳轉(zhuǎn)測(cè)試
#######################################################
? 1、rs web server機(jī)測(cè)試環(huán)境準(zhǔn)備:
●1.1 在/var下分別建立php、nginx、pic三個(gè)站點(diǎn)目錄,并增加index.htms文件及增加內(nèi)容
假定 php nginx pic分別代表解析不同的服務(wù)。
[root@ha2 ~]#for name in php nginx pic ;do mkdir -p /var/$name;echo $name >/var/$name/index.html;done
●1.2 檢查結(jié)果
[root@ha2 ~]# for name in php nginx pic ;do echo -n "/var/$name/index.html → :";cat /var/$name/index.html; done
/var/php/index.html → :php
/var/nginx/index.html → :nginx
/var/pic/index.html → :pic
●1.3 安裝http服務(wù)
[root@ha2 ~]# yum install httpd -y
●1.4 配置http服務(wù)
先做配置文件備份
[root@ha2 conf]# cd /etc/httpd/conf
[root@ha2 conf]# cp httpd.conf httpd.conf.oldboy.110625
[root@ha2 conf]# ls -l
total 88
-rw-r--r-- 1 root root 34399 Jun 26 16:40 httpd.conf
-rw-r--r-- 1 root root 34399 Jun 26 16:49 httpd.conf.oldboy.110625
-rw-r--r-- 1 root root 13139 May 4 18:54 magic
編輯httpd.conf 最下面加
Options FollowSymLinks
AllowOverride none
Order allow,deny
Allow from all
NameVirtualHost *:80
ServerAdmin 49000448@qq.com
ServerName nginx.etiantian.org
ServerAlias etiantian.org
DocumentRoot "/var/nginx"
ServerAdmin 49000448@qq.com
ServerName php.etiantian.org
DocumentRoot "/var/php"
ServerAdmin 49000448@qq.com
ServerName pic.etiantian.org
DocumentRoot "/var/pic"
提示:配置完成記得重起http服務(wù)。
●1.5 http服務(wù)器本地增加host內(nèi)容如下
echo \'10.0.0.162 nginx.etiantian.org\' >>/etc/hosts
echo \'10.0.0.162 php.etiantian.org\' >>/etc/hosts
echo \'10.0.0.162 pic.etiantian.org\' >>/etc/hosts
echo \'10.0.0.162 etiantian.org\' >>/etc/hosts
●1.6 在我們的筆記本電腦上
C:WINDOWSsystem32driversetchosts增加如下hosts內(nèi)容
10.0.0.162 nginx.etiantian.org
10.0.0.162 php.etiantian.org
10.0.0.162 pic.etiantian.org
10.0.0.162 etiantian.org
嚴(yán)重提示:
1.這里解析的IP 為http server的IP
2.這里的host相當(dāng)于模擬DNS的解析
●1.7測(cè)試增加http虛擬主機(jī)的配置
訪問(wèn):http://nginx.etiantian.org 結(jié)果應(yīng)該為nginx,其它類推。
訪問(wèn):http://php.etiantian.org 結(jié)果應(yīng)該為php,其它類推。
訪問(wèn):http://pic.etiantian.org 結(jié)果應(yīng)該為pic,其它類推。
? 2 配置haproxy L7負(fù)載均衡
●2.1 haproxy.conf配置
#______________________________________________________________________
defaults
log global
mode http
retries 3
option redispatch
contimeout 5000
clitimeout 50000
srvtimeout 50000
stats enable
stats hide-version
stats uri /admin?stats
stats auth proxy:123456
option httpclose
●2.2 更改hosts
在我們的筆記本電腦上
C:WINDOWSsystem32driversetchosts增加如下hosts內(nèi)容
10.0.0.162 nginx.etiantian.org
10.0.0.162 php.etiantian.org
10.0.0.162 pic.etiantian.org
10.0.0.162 etiantian.org
嚴(yán)重提示:這里解析的IP 為haproxy server的IP
●2.3 測(cè)試haproxy的轉(zhuǎn)發(fā)應(yīng)用
確認(rèn)host文件配置正常后,可以瀏覽 etiantian.org
看是否能跳轉(zhuǎn)到nginx.etiantian.org 檢查點(diǎn):url和內(nèi)容顯示
提示:個(gè)別瀏覽器,有可能看不到URL跳轉(zhuǎn),只要是內(nèi)容顯示正確就對(duì)了。
可以修改配置在測(cè)試下:
acl short_dom hdr(Host) -i etiantian.org
redirect prefix http://php.etiantian.org code 301 if short_dom
目的:使訪問(wèn)http://etiantian.org 跳轉(zhuǎn)到http://php.etiantian.org
重起haproxy服務(wù)后,進(jìn)行訪問(wèn)查看。
#########################################################
注意以上 已經(jīng)應(yīng)用到正式環(huán)境N久 大家可放心使用。
更多7層的應(yīng)用測(cè)試,請(qǐng)關(guān)注 http://www.etiantian.org
●2.4 更多7層的 的技術(shù)
更多7層的應(yīng)用測(cè)試,請(qǐng)隨時(shí)關(guān)注 http://www.etiantian.org!
比如 根據(jù)后綴進(jìn)行過(guò)濾轉(zhuǎn)發(fā)
acl url_static path_end .gif .png .jpg .css .js
在比如根據(jù)目錄進(jìn)行過(guò)濾轉(zhuǎn)發(fā)
acl oldboy_java path_beg /java/
acl static_ryan path_beg /images/
acl static_ryan path_beg /css/
偶會(huì)盡快整理詳細(xì)的文檔 近期放出 和大家分享.
謝謝大家瀏覽啊。哈哈!
文章結(jié)尾,給大家上傳張圖,誰(shuí)在用haproxy.
本文出自 “老男孩linux運(yùn)維” 博客,請(qǐng)務(wù)必保留此出處http://oldboy.blog.51cto.com/2561410/597523