haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用
2014-05-02 01:26
756 查看
haproxy于Nginx一样都是做反向代理,但是与其相比,haproxy更专注于web代理。HAProxy是单进程多请求,也支持多进程,HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。 haproxy功能的实现全部基于配置文件,所以我们需要了解很多的配置指令,玩转指令,再结合实际情况,我们就玩转了haproxy,其实haproxy的配置也很简单,下面我们一起简单认识和了解一些haproxy的基本功能和相关知识。
CentOS6.5自带的rpm包的版本完全够我们使用,所以我们直接yum安装
1:全局配置段 2:代理功能的相关配置: 在代理功能这块细分又分为四部分: 1:defaults 默认,为代理提供默认属性 2:frontend 前端,相当于Nginx的Server 3:backend 后端,相当于Nginx的upstream server 可以定义多组 4:listen 相当于一个frontend绑定一个backend 固定组合 配置解说:
配置haproxy的配置文件:
CentOS6.5自带的rpm包的版本完全够我们使用,所以我们直接yum安装
# yum -y install haproxy查看haproxy的配置信息在/etc/haproxy/haproxy.cfg。大致整体可分为两个部分
1:全局配置段 2:代理功能的相关配置: 在代理功能这块细分又分为四部分: 1:defaults 默认,为代理提供默认属性 2:frontend 前端,相当于Nginx的Server 3:backend 后端,相当于Nginx的upstream server 可以定义多组 4:listen 相当于一个frontend绑定一个backend 固定组合 配置解说:
(1)frontend main *:5000 # frontend的名称监听端口 acl url_static path_beg -i /static /images /javascript /stylesheets # acl acl的名称 acl的控制标准:路径从那开始。 acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static # 使用那个backend 在什么情况下使用这个后端 default_backend app # 默认情况下使用那个backend 默认使用backend的名称
(2)backend static # backend的名称 见名知意,这是静态服务器后端 balance roundrobin # 关键字 负载均衡的调度方法 server static 127.0.0.1:4331 check # 定义后端服务器 名称 ip地址 端口 执行健康检查haproxy简单代理的实现: 实验环境:3台CentOS6.5的虚拟机 其中1台两个网卡172.16.20.1是内外ip.192.168.2.109是外网ip.并安装haproxy,开启路由转发功能,另外两台分别安装php ,ip分别是172.16.20.11,172.16.20.12网关指向172.16.20.1,并开启httpd服务,提供测试页面。
配置haproxy的配置文件:
frontend hapserver *:80 default_backend webserver backend webserver balance roundrobin server web1 172.16.20.11:80 check server web2 172.16.20.12:80 check这样一个简单的轮询代理就配置好了。 下一个话题基于haproxy的动静分离: 动静分离的思想:其实就是定义几个acl的访问控制规则,定义2组backend,当Client访问的URL匹配上我们定义的静态访问规则的时候我们就调用静态的backend,当匹配到动态的规则的时候,就调用动态的backend 或者不写直接设置成默认都可以。那么看下面的配置:
frontend hapserver *:80 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static default_backend dynamic backend dynamic balance roundrobin server web1 172.16.20.11:80 check backend static balance roundrobin server web2 172.16.20.12:80 check当你访问的路径是以static、images...等开始或者是.jpg...结尾的时候就调用后端服务器backend static,否则默认调用的是backend dynamic 基于keepalived实现haproxy的高可用,双主配置我在博客<<基于keepalived实现Director、ipvs、Nginx的高可用以及Nginx的双主模型>>有介绍Nginx的高可用和双主模型,配置一样,大家可以参考此文档。 haproxy的状态输出:要使用指令stats,配置信息如下
listen statspage # 定义单独输出页面 bind *:8888 # 绑定端口在8008 stats enable # 启用页面输出机制 stats auth admin:haproxy # 启用用户认证及用户名和密码 stats admin if true
相关文章推荐
- HAProxy基于KeepAlived实现Web高可用及动静分离 推荐
- HAProxy基于KeepAlived实现Web高可用及动静分离
- Keepalived实现Haproxy高可用实现Web动静分离
- HAProxy+KeepAlived实现web服务高可用、动静分离等 推荐
- 基于HAProxy+Varnish实现动静分离、负载均衡的高可用集群
- keepalived高可用haproxy配合varnish实现wordpress的动静分离
- 如何构建Keepalived+HAProxy实现高可用,负载均衡,动静分离。
- haproxy配置详解以及动静分离的实现 推荐
- HAproxy实现反向代理、负载均衡集群以及web动静分离
- HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署
- haproxy高可用实现 和 动静资源的调度分离
- HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署 推荐
- 基于keepalived实现haproxy高可用的双主模型配置
- HAProxy-keepalived负载均衡及基于域名动静分离 推荐
- 基于keepalived实现LVS高可用以及Web服务高可用 推荐
- 实现基于haproxy和keepalived的负载均衡和高可用架构
- HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署
- haproxy配置详解以及动静分离的实现
- keepalived+haproxy 实现对web的动静分离和负载均衡
- Haproxy+Keepalived+Varnish+LAMP+Memcacked+NFS 实现web站点的动静分离