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
service rsyslog restart 重启日志服务
service haproxy restart
如果在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提供
|