×
新网 > 虚机资讯 > 正文

haproxy 7层负载均衡代理转发实战讲解(一)-老男孩笔记系列

######################################################### # haproxy L7 实战讲解 #date:2010-06-09 #作者:老男孩---《老男孩linux就业培训中心 》 #QQ:31333741 MAIL:oldboy521@hotmail.com #QQ交流群:45039636    #blog: http://oldbo

#########################################################
# haproxy L7 实战讲解
#date:2010-06-09
#作者:老男孩---《老男孩linux就业培训中心 》
#QQ:31333741 MAIL:oldboy521@hotmail.com
#QQ交流群:45039636
#blog: http://oldboy.blog.51cto.com
#psite: http://oldboy.cc(即将开放)
#pblog:http://blog.etiantian.org
##########################################################

timg (33).jpg
前言:
haproxy 就不多说了。是值得信赖的优秀的7层转发软件。
本人实际应用4000以上万pv的访问量级站点,做L7的整体表现和F5/netscaler等硬件负载均衡比,毫不逊色。
当然,这需要一个好的架构体系和比较优的配置优化。
主要体现在可维护性,自主掌控能力,价格,扩展能力,灵活性等N多方面

本文针对 玩过haproxy的哥们,因此 就不基础扫盲工作了。望大家谅解,问题可以进群和大家交流。
有想了解初级内容的,请关注我年底将要出版的书籍,暂定名 《老男孩的linux运维笔记》

#######################################################
haproxy 7层负载均衡代理转发实战讲解(一) 之301跳转测试
#######################################################

� 1、rs web server机测试环境准备:

●1.1 在/var下分别建立php、nginx、pic三个站点目录,并增加index.htms文件及增加内容
假定 php nginx pic分别代表解析不同的服务。

[root@ha2 ~]#for name in php nginx pic ;do mkdir -p /var/$name;echo $name >/var/$name/index.html;done
●1.2 检查结果
[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服务
[root@ha2 ~]# yum install httpd -y

●1.4 配置http服务

先做配置文件备份
[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 最下面加
<Directory "/var">
Options FollowSymLinks
AllowOverride none
Order allow,deny
Allow from all
</Directory>

NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin 49000448@qq.com
ServerName nginx.etiantian.org
ServerAlias etiantian.org
DocumentRoot "/var/nginx"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 49000448@qq.com
ServerName php.etiantian.org
DocumentRoot "/var/php"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 49000448@qq.com
ServerName pic.etiantian.org
DocumentRoot "/var/pic"
</VirtualHost>

提示:配置完成记得重起http服务。

●1.5 http服务器本地增加host内容如下
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内容

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
严重提示:
1.这里解析的IP 为http server的IP
2.这里的host相当于模拟DNS的解析

●1.7测试增加http虚拟主机的配置
访问:http://nginx.etiantian.org 结果应该为nginx,其它类推。
访问:http://php.etiantian.org 结果应该为php,其它类推。
访问:http://pic.etiantian.org 结果应该为pic,其它类推。


� 2 配置haproxy L7负载均衡
●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内容

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
严重提示:这里解析的IP 为haproxy server的IP

●2.3 测试haproxy的转发应用
确认host文件配置正常后,可以浏览 etiantian.org
看是否能跳转到nginx.etiantian.org 检查点:url和内容显示
提示:个别浏览器,有可能看不到URL跳转,只要是内容显示正确就对了。

可以修改配置在测试下:
acl short_dom hdr(Host) -i etiantian.org
redirect prefix http://php.etiantian.org code 301 if short_dom
目的:使访问http://etiantian.org 跳转到http://php.etiantian.org

重起haproxy服务后,进行访问查看。

#########################################################

注意以上 已经应用到正式环境N久 大家可放心使用。
更多7层的应用测试,请关注 http://www.etiantian.org

 

●2.4 更多7层的 的技术
更多7层的应用测试,请随时关注 http://www.etiantian.org!

比如 根据后缀进行过滤转发
acl url_static path_end .gif .png .jpg .css .js

在比如根据目录进行过滤转发
acl oldboy_java path_beg /java/
acl static_ryan path_beg /images/
acl static_ryan path_beg /css/


偶会尽快整理详细的文档 近期放出 和大家分享.
谢谢大家浏览啊。哈哈!

文章结尾,给大家上传张图,谁在用haproxy.

 

 

 

 

本文出自 “老男孩linux运维” 博客,请务必保留此出处http://oldboy.blog.51cto.com/2561410/597523

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading