haproxy是一种免费、可靠的解决方案 。。用于提供高可用、负载均衡和代理服务,尤其适用于高负载且需要持久连接或7层处理机制的web站点
下面从其基本配置,开启日志功能,统计页面输出相关配置,基于ACL实现动静分离 来演示其功能
haproxy基本配置
haproxy | 172.16.15.17 |
vip (eth1) | 192.168.20.1 |
node1 | 192.168.20.11 |
node2 | 192.168.20.12 |
haproxy 配两个块网卡
后端两台服务器添加网关 指向192.168.20.1 添加主页
编辑配置文件
frontend websrv *:80 default_backend webservers backend webservers balance roundrobin server node1 192.168.20.11:80 check server node2 192.168.20.12:80 check
启动haproxy 访问172.16.15.17 轮巡访问到node1和node2的主页
开启日志
配置文件中全局端
log 127.0.0.1 local2
如果在frontend 下添加下面内容
log 127.0.0.1 local3
再进行上面操作 则可为单独个frontend 代理记录日志
统计页面输出相关设置
1、stats enable
不能用在frontend
在backend webservers 下面添加 stats enable
登录 172.16.15.17/haproxy?stats
2、stats auth 进行认证
在stats enable下添加 stats auth tom:tom (假如用户名是tom 密码也是tom)
3、stats uri
如果进一步进行安全设置 更换访问路径 可以用stats uri
在stats enable 下面添加 stats uri /jerry?stats 那么再访问172.16.15.17/haproxy?stats将是404 Not Found
4、更改自定义端口
listen statistics
bind *:4454
stats enable
5、stats version 隐藏版本
listen statistics bind *:4454 stats enable stats uri /jerry?stats stats hide-version
6、stats admin 启用管理接口
基于ACL实现动静分离
访问静态页面和动态页面分别定向到特定的服务器
先在node1 和node2上都提供静态和动态页面访问文件
node1
node2
编辑配置文件
frontend websrv bind *:80 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js .html acl host_static hdr_beg(host) -i img. video. down. ftp. imgs. image. videos. acl url_php path_end -i .php use_backend static if url_static or host_static use_backend dynamic if url_php default_backend dynamic ackend static balance roundrobin server node2 192.168.20.12:80 check ackend dynamic balance roundrobin server node1 192.168.20.11:80 check
根据文件配置 虽然两个后端服务器都提供了动态和静态文件 但是访问静态时由node2来提供 访问动态页面时由node1提供
原文:http://baglinux.blog.51cto.com/8584908/1405755