首页 > 代码库 > haproxy实现动静分离-实例
haproxy实现动静分离-实例
环境拓扑图
环境准备:
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测试
测试:
访问动态网页:
配置文件中设置默认为动态的
访问静态网页:
至此,布署完成。如有错误,请多多指教
haproxy实现动静分离-实例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。