码迷,mamicode.com
首页 > 其他好文 > 详细

haproxy实现动静分离-实例

时间:2014-09-23 10:47:34      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:blank   target   拓扑图   color   style   


环境拓扑图

bubuko.com,布布扣


环境准备:
Centos6.5x86_64 关闭防火墙和Selinux
node1:HAProxy
   VIP:eth1:192.168.1.19/24
   eth2:192.168.19.1/24

node2:static-server (eth0: 192.168.19.2/24     网关:192.168.19.1)
node3:dynamic-server(eth0: 192.168.19.3/24 网关:192.168.19.1)


一、安装并配置Haproxy服务器

node1 # ifconfig eth1 192.168.1.19/24 up # route add default gw 192.168.1.1 # ifconfig eth2 192.168.19.1/24 up # yum install -y haproxy

# cat /etc/haproxy/haproxy.cfg global #全局配置参数 log 127.0.0.1 local2 #定义日志 chroot /var/lib/haproxy #安全模式 pidfile /var/run/haproxy.pid #pid文件 maxconn 4000 #最大连接数 user haproxy #用户 group haproxy # daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats defaults #配置默认参数的,这些参数可以被利用配置到frontend,backend,listen组件 mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK(注,health已经废弃) log global #采用全局定义的日志 option httplog #日志类别http日志格式 option dontlognull #不记录健康检查的日志信息 option http-server-close #每次请求完毕后主动关闭http通道 option forwardfor except 127.0.0.0/8 #不记录本机转发的日志 option redispatch #serverId对应的服务器挂掉后,强制定向到其他健康的服务器 retries 3 #3次连接失败就认为服务不可用,也可以通过后面设置 timeout http-request 10s #请求超时 timeout queue 1m #队列超时 timeout connect 10s #连接超时 timeout client 1m #客户端连接超时 timeout server 1m #服务器连接超时 timeout http-keep-alive 10s #长连接超时 timeout check 10s #检查超时 maxconn 30000 #最大连接数 listen stats #listen是Frontend和Backend的组合体。这里定义的是haproxy状态页面监控! mode http #模式http bind 0.0.0.0:8080 #绑定的监控ip与端口 stats enable #启用监控 stats hide-version #隐藏haproxy版本 stats uri /haproxyadmin?stats #定义的uri stats realm Haproxy\ Statistics #定义显示文字 stats auth admin:admin #认证 stats admin if TRUE frontend http-in #接收请求的前端虚拟节点,Frontend可以根据规则直接指定具体使用后端的 backend(可动态选择)。这里定义的是http服务! bind *:80 #绑定的监控ip与端口 mode http #模式http log global #定义日志 option httpclose #每次请求完毕后主动关闭http通道 option logasap # option dontlognull ##不记录健康检查的日志信息 capture request header Host len 20 capture request header Referer len 60 # 定义访问控制,表示以url以.css .js .html .php结尾的分别调度到哪台服务器上访问 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .jpeg .gif .png .css .js .html use_backend static_servers if url_static default_backend dynamic_servers #定义的默认backend backend static_servers # 后端web服务集群的配置 balance roundrobin #使用轮询的调度方式,在有多台服务器的情况下 server node2 192.168.19.2:80 check backend dynamic_servers # 动态服务器的配置 cookie srv insert nocache #插入cookie,使其可以访问到后端的同一台动态服务器,防止登录信息丢失 balance roundrobin server node3 192.168.19.3:80 check cookie node3

二、WEB服务器简单配置

node2

# ifconfig eth0 192.168.19.2/24 up # route add default gw 192.168.19.1 # 网关指向haproxy主机的eth1地址 # ping 192.168.19.1 # ping一下haproxy的节点看是否ping通 # yum install -y httpd # vim /var/www/html/index.html <h1>node2.luo.com</h1> # service httpd start # curl http://192.168.19.2 <h1>node2.luo.com</h1>


node3

node3# ifconfig eth0 192.168.19.3/24 up node3# route add default gw 192.168.19.1 # 网关指向haproxy主机的eth1地址 node3# ping 192.168.19.1 # ping一下haproxy的节点看是否ping通 node3# yum install -y httpd php elinks node3# vim /var/www/html/index.php <h1>node3.luo.com</h1> <?php phpinfo(); ?> node3# service httpd start # 配置好之后就把web服务启动起来,再访问测试一下 [node3]# elinks http://192.168.19.3 # 使用文本浏览器elinks测试

测试:
 bubuko.com,布布扣bubuko.com,布布扣

bubuko.com,布布扣

访问动态网页:

bubuko.com,布布扣

配置文件中设置默认为动态的 
 bubuko.com,布布扣

访问静态网页:

bubuko.com,布布扣

至此,布署完成。如有错误,请多多指教

haproxy实现动静分离-实例

标签:blank   target   拓扑图   color   style   

原文地址:http://luoshixin.blog.51cto.com/2817266/1557159

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!