haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用
2020-11-24 07:07
标签:haproxy 动静分离 反向代理 haproxy于Nginx一样都是做反向代理,但是与其相比,haproxy更专注于web代理。HAProxy是单进程多请求,也支持多进程,HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。 haproxy功能的实现全部基于配置文件,所以我们需要了解很多的配置指令,玩转指令,再结合实际情况,我们就玩转了haproxy,其实haproxy的配置也很简单,下面我们一起简单认识和了解一些haproxy的基本功能和相关知识。 CentOS6.5自带的rpm包的版本完全够我们使用,所以我们直接yum安装 查看haproxy的配置信息在/etc/haproxy/haproxy.cfg。大致整体可分为两个部分 1:全局配置段 2:代理功能的相关配置: 在代理功能这块细分又分为四部分: 1:defaults 默认,为代理提供默认属性 2:frontend 前端,相当于Nginx的Server 3:backend 后端,相当于Nginx的upstream server 可以定义多组 4:listen 相当于一个frontend绑定一个backend 固定组合 配置解说: 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的配置文件: 这样一个简单的轮询代理就配置好了。 下一个话题基于haproxy的动静分离: 动静分离的思想:其实就是定义几个acl的访问控制规则,定义2组backend,当Client访问的URL匹配上我们定义的静态访问规则的时候我们就调用静态的backend,当匹配到动态的规则的时候,就调用动态的backend 或者不写直接设置成默认都可以。那么看下面的配置: 当你访问的路径是以static、images...等开始或者是.jpg...结尾的时候就调用后端服务器backend static,否则默认调用的是backend dynamic 基于keepalived实现haproxy的高可用,双主配置我在博客基于keepalived实现Director、ipvs、Nginx的高可用以及Nginx的双主模型>>有介绍Nginx的高可用和双主模型,配置一样,大家可以参考此文档。 haproxy的状态输出:要使用指令stats,配置信息如下
本文出自 “欢迎大家来做客” 博客,请务必保留此出处http://aperson.blog.51cto.com/3480661/1405433 haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用,搜素材,soscw.com haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用 标签:haproxy 动静分离 反向代理 原文地址:http://aperson.blog.51cto.com/3480661/1405433# yum -y install haproxy
(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地址 端口 执行健康检查
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
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
listen statspage # 定义单独输出页面
bind *:8888 # 绑定端口在8008
stats enable # 启用页面输出机制
stats auth admin:haproxy # 启用用户认证及用户名和密码
stats admin if true
文章标题:haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用
文章链接:http://soscw.com/index.php/essay/22332.html