设为首页 收藏本站
查看: 1906|回复: 3

[经验分享] 使用Haproxy实现动静分离和负载均衡

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-11-14 09:04:21 | 显示全部楼层 |阅读模式
| | <----模拟生产网络
HA(宿主) 附件服务器
| | <----模拟内网
|----------|----------|-------------|
web1 web2 img1

HA
br0 10.1.1.21 <---www.upl.com
virbr6 192.168.29.1


web1
eth0 192.168.29.11

web2
eth0 192.168.29.12

img
eth0 192.168.29.14


att附件服务器
eth0 10.1.1.20
eth1 192.168.29.13



一、配置Haproxy

所有静态请求经过haproxy调度给img1
其余请求都均衡调度给web1和web2
# vim /usr/local/haproxy/haproxy.cfg

global
log 127.0.0.1 local0 info
user haproxy
group haproxy
daemon
pidfile /usr/local/haproxy/haproxy.pid

defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
timeout client 50000
timeout server 50000
timeout connect 60000
option httpchk HEAD /ok.html HTTP/1.0


frontend http-in
bind *:80
mode http
option httpclose
option forwardfor

acl url_static path_end .gif .png .jpg .css .js .swf
acl short_domain hdr(Host) -i upl.com
acl right_ref hdr_reg(Referer) -i upl.com
acl steal_link path_end no.png

redirect prefix http://www.upl.com code 301 if short_domain
redirect location code 302 if !right_ref url_static !steal_link


use_backend imgservs if url_static
default_backend orgservs

backend orgservs
balance roundrobin
cookie SERVERID insert indirect
server web1 192.168.29.11:80 weight 1 cookie web1 check inter 2000 rise 2 fall 2
server web2 192.168.29.12:80 weight 1 cookie web2 check inter 2000 rise 2 fall 2


backend imgservs
server img1 192.168.29.14:80 weight 1 check inter 2000 rise 2 fall 2



listen stats :8888
mode http
transparent
stats uri / haproxy-stats
stats realm Haproxy \ statistic
stats auth admin:admin

二、部署haproxy后端节点 (web1,web2,img1)

1、web1,web2安装lamp环境(除了mysql)
httpd php php-mysql

目录下建立 /var/www/html/ok.html
启动服务httpd

2、为了节约机器,实验环境在宿主机上部署mysql-server


3、img1 安装httpd
# touch /var/www/html/ok.html
# service httpd start

4、解压代码到web1,并且设定haproxy仅仅调度给web1,暂时不调度给web2


# vim /usr/local/haproxy/haproxy.cfg
。。。
。。。
server web2 192.168.29.12:80 weight 0 cookie web2 check inter 2000 rise 2 fall 2 <---设定权重为0

# service haproxy reload


5、解压相同代码到img1
因为这些代码包含了所有的静态文件

6、必须在客户端里绑定www.upl.com指向haproxy生产网络接受请求的IP

10.1.1.21 www.upl.com
10.1.1.20 att.upl.com


向导安装论坛 http://www.upl.com



三、部署附件服务器

1、在附件服务器上安装httpd

2、在附件服务器上安装vsftpd,并且设定相关ftp帐号和权限
# passwd apache
# usermod -d '/var/www/html' apache <---确定家目录是网站的根目录

# service httpd start


# vim /etc/vsftpd/vsftpd.conf
....
chroot_local_user=YES

# service vsftpd start

# chown apache:apache /var/www/html/
# rsync -alvR 192.168.29.11:/var/www/html/attachment/ /

# ls /var/www/html/
attachment



使用apache帐号测试登录ftp


3、回到论坛的后台面板设定远程附件功能

搜索ftp,点击 ftp设置


站点附件地址 http://att.upl.com/attachment



所有设定都弄好之后,把web1的代码同步到web2,并且恢复对web2的调度
# rsync -alvR /var/www/html/ 192.168.29.12:/

===============================================================================

整合lvs和haproxy实现更大型的负载均衡集群


lvs 四层调度,重量型的,能够支持更高的并发
haproxy/nginx 特色是7层调度,能够根据http协议实现丰富的调度规则,性能相对于lvs较差一些。


br0
|
router
| DNS轮寻
br0:1
|--------------同一个机房-----------|
lvs-HA集群1 lvs-HA集群2
| |
|----------------| |------------------|
Ha1 Ha2 Ha3 Ha4
| | | |
|--------------|---|-------------|-----|--------|-------|--------|
web1 img1 web2 js1 web3 web4 img2 js2

mysql-server , memcached


由于实验环境中,没有多个网段,没有真正的路由,所以拓扑图中的router使用一台普通计算机模拟,要一个网卡模拟两个网段
router
br0 10.1.1.21
br0:1 192.168.129.1


所有web节点提供的内容一致的
所有img1节点存放的都是图形文件
所有js节点存放的都是css,js代码文件


客户端请求----经过DNS轮寻----> 某一组lvs-----> 通过直接调度技术----> 其中一台Haproxy --根据请求的特点----->后端应用节点


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-10461-1-1.html 上篇帖子: haproxy+keepalived搭建 下篇帖子: 用Haproxy给MySQL做负载均衡

尚未签到

发表于 2013-12-1 11:27:43 | 显示全部楼层
一句对不起,让我们的爱败给了时间,输给了距离。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-15 00:38:39 | 显示全部楼层
-"〖八月】你说的承诺都成泡影,可我还在期待什么

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-24 02:51:36 | 显示全部楼层
一直都在练习微笑最终变成不敢哭的人

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表