HAProxy动静分离和会话粘性实例

HAProxy简介及常用配置文件详解见:http://blog.51cto.com/holmes975/2333207

一、HAProxy的动静分离实现实例

我们通过CentOS7.5中的HAProxy实现负载均衡调度功能,将用户发来的请求进行动态静态分离并将请求发送到后端不同的服务器上。三台后端服务器CentOS7.5A、CentOS7.5B、CentOS7.5C上分别开启httpd或nginx服务提供可访问的web端。(haproxy本身是不提供可访问的web页面)

CentOS7.5----HAProxy配置文件:

我定义了一个叫做main的frontend,监听所有IP的80端口,下面写了两条ACL规则,将PATH部分以/static /images /javascript /stylesheets开头的和PATH部分以.jpg .jpeg .gif .png .css .js .txt .html .htm结尾的(-i 不区分大小写的意思)定义到一个叫url_static的规则里。
use_backend static if url_static
default_backend app

如果符合url_static规则就将访问请求发送到叫做static的后端服务器上,默认的后端服务器使用叫做app。
下面分别定义了两个后端服务器static和app。
static:轮询算法调用服务器(一个一个的按顺序的调用所定义的服务器),调度到179.5.99.15:80.
app:使用默认轮询方式调度两台后端服务器app1和app2。

下面进行测试:
向CentOS7.5C静态服务器httpd下创建一个名为index.html内容为7.5A的文件。

向CentOS7.5A动态服务器httpd下创建一个名为sessiontest.php内容为php测试脚本的文件。

向CentOS7.5B动态服务器nginx下添加相同文件。

访问测试:

可见由.html结尾的文件被分配到7.5C服务器上。


而不符合该ACL规则的其他访问被分配到7.5A和7.5B上。证明试验成功,实现了最基本的动静分离,如有特殊情况可自行修改ACL规则实现需要的动静分离。

二、利用cookie实现会话粘性
简单解释会话粘性就是指在执行某种操作时需要与一台后端服务器实现一段时间的定向连接。
根据上面动静分离实验我们对7.5A和7.5B进行实验。

listen stats #关联前端和后端定义一个完整的代理
mode http #设置代理协议
bind 0.0.0.0:8080 #绑定相应的端口
stats enable #开启Haproxy统计状态
stats refresh 30s #统计页面自动刷新时间间隔
stats uri /admin?stats #访问的url
stats realm "welcome to check haproxy stats !" #统计页面认证时提示内容信息
stats auth admin:123456 #设置登录用户和密码
stats admin if TRUE #如果认证通过,则就可以打开stats

以上代码在haproxy的配置文件中(我的是/etc/haproxy/haproxy.cfg),作用是对后端服务器的健康状态检测。一会检验试验是否成功我们会用到。


上图为加入cookie保持的配置文件,详细含义见http://blog.51cto.com/holmes975/2333207
算法我是用leastconn,此算法针对会话保持更为有效,具体含义见上篇博客。
下面我们重启haproxy服务进行测试,测试在访问动态资源时是否为我们分配到同一台服务器而不是每台服务器为我们响应一次。
]# systemctl reload haproxy

无论我们怎么刷新都不会被分配到7.5B上,说明我们的会话粘性起了作用。为证明7.5B服务器并没有被关闭我们使用上面代码提到的状态检测页面;

可以看到我们的app1和app2都在运行状态下,刷新后还是保持在7.5A也就是app1的服务器上,证明我们试验成功。(static也就是静态服务器不用了,所以刚刚我就将它关掉了,可见down掉的服务器呈红色)

原文地址:http://blog.51cto.com/holmes975/2333337

时间: 2024-10-27 11:32:03

HAProxy动静分离和会话粘性实例的相关文章

HAproxy动静分离

一:HAproxy       HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.      HAProxy特别 适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的 运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上.   HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常

Centos7 haproxy动静分离

Centos7 haproxy动静分离 实现的结果:当客户端访问haproxy时,请求的是静态文件内容时,请求转交给static server,请求的是php内容时,请求转交给php server,请求的是jsp内容时,请求转交给tomcat server,以实现动静分离.haproxy服务器:192.168.80.100先部署三台web服务器:一台httpd支持php 192.168.80.101一台部署httpd支持静态资源 192.168.80.102一台tomcat支持jsp 192.1

haproxy+nginx+tomcat+memcache实现动静分离、会话同步集群

一.实验说明 haproxy在前端做负载均衡调度,后端实现动静分离 静态资源server为nginx 动态内容使用nginx&tomcat做app server,集成于单机,两台 使用两台memcache服务器做高可用session缓存,实现app server宕机时会话不中断 以上组合使用实现业务.session.session缓存均为高可用的集群. 二.实验准备 haproxy server:192.168.0.168 nginx server(静态):192.168.0.68 nginx+

nginx反代后端动静分离 php会话保持使用memcached

nginx调度器: DR:172.18.11.111 ]# yum -y install nginx ]# systemctl start nginx php主机:部署phpwind程序.安装memcached RS1:172.18.11.112 RS2:172.18.11.113 ]# yum -y install php ]# systemctl start php ]# yum -y install memcached ]# yum -y install libmemcached ]# y

HAPorxy详解及动静分离实例

一.HAProxy简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.   HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.    并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程模型,此模型支持非常大的并发连接

haproxy 基础详解 及 动静分离的实现

haproxy 介绍 1 工作在ISO 七层 根据http协议(或者工作在ISO四层 根据tcp协议) 提供web服务的负载均衡调度器 负载均衡调度器分类 工作在四层: # lvs 工作在七层: # nginx (web,http reverse proxy,cache) # haproxy (http reverse proxy,tcp proxy) # tcp: 实现MySQL的读写中读的负载均衡 # ats (apache traffic server) # perlbal # pound

高性能Web服务之haproxy应用详解及实现论坛的动静分离机制

HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. 下面通过案例架构详解HAproxy应用,架构图如下所示: 以上架构实现过程如下: (1).在node1,node

haproxy ACL及动静分离

一.haproxy ACL说明 二.haproxy 动静分离 一.haproxy ACL说明 1.1.ACL作用 使用访问控制列表(ACL)提供了灵活的解决方案来执行内容切换,并且通常基于从请求中提取的内容,响应或任何环境状态来做出决定. 也就是,ACL能分析请求的内容,并做相应的操作 1.2.ACL语法 acl <aclname> <criterion> [flags] [operator] [<value>] <aclname>:acl 名称,自定义,建

Haproxy的负载均衡、动静分离、状态监控、近期网络架构

一.Haproxy的简介 Haproxy的官网站点:http://haproxy.com/ HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. HAProxy实现