HAproxy动静分离

一:HAproxy

      HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。
      HAProxy特别 适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的 运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。
   HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制、系统调度器限制以及无处不在的锁限 制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。-----百度百科

二:实现HAproxy动静分离

1)试验拓扑图

2)试验环境准备

S1与S2跟HAproxy服务器在一个网段内,选择vment3.

1)修改S1
[[email protected] ~]# ifconfig eth1 192.168.16.1/24 up   # 给eth1配置ip地址
[[email protected] ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:B2:AD:BA  
         inet addr:172.16.16.2 Bcast:172.16.255.255  Mask:255.255.0.0
         inet6 addr: fe80::20c:29ff:feb2:adba/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:11122303 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1193136 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:697850934 (665.5 MiB)  TX bytes:74549101 (71.0 MiB)eth1      Link encap:Ethernet  HWaddr 00:0C:29:B2:AD:C4  
         inet addr:192.168.1.1  Bcast:192.168.27.255  Mask:255.255.255.0
         inet6 addr: fe80::20c:29ff:feb2:adc4/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)
         
2)修改S2         
[[email protected] ~]# ifconfig eth0 192.168.1.2/24 up在s1设置好相关配置,选择虚拟机上的VMnet3与haproxy上的eth1的同一通信通道,再配置IP地址和默认网关接口,而后再提供不同的页面以便测试用;
[[email protected] ~]# route add defaulte gw 192.168.27.18  # 网关指向haproxy主机的eth1地址
[[email protected] ~]# ping 192.168.27.10  # ping一下haproxy的节点看是否ping通
[[email protected] ~]# vim /var/www/html/index.html<h1>
[[email protected] ~]# service httpd start # 配置好之后就把web服务启动起来,再访问测试一下,测试的连接改为桥接方式 
[[email protected] ~]# ifconfig eth0 192.168.1.16/24 up
[[email protected] ~]# route add defaulte gw 192.168.27.18  # 网关指向haproxy主机的eth1地址
[[email protected] ~]# ping 192.168.27.10  # ping一下haproxy的节点看是否ping通
[[email protected] ~]# vim /var/www/html/index.php
    <h1>hello word</h1>
    <?php
     phpinfo();
     ?>
[[email protected] ~]# service httpd start # 配置好之后就把web服务启动起来,再访问测试一下,测试的连接改为桥接方式

3)修改haproxy配置文件
[[email protected] haproxy]# vim haproxy.cfg
frontend main
    bind :80
   # default_backend webservers
    acl url_static path_end -i .css .js .html
    acl url_dynamic path_end -i .php
    use_backend static if url_static
    default_backend dynamic
backend static
   # balance roundrobin
   # cookie webservers insert nocache
    server s1 192.168.1.2:80 check inter 3000 rise 2 fall 2 maxconn 5000
backend dynamic
    server s2 192.168.1.16:80 check inter 3000 rise 2 fall 2 maxconn 5000
listen statspage
    bind *:8888
    stats enable
    stats hide-version
    stats uri /admin?stats
    stats auth llh:mageedu
    stats admin if TRUE

三:启动HAproxy进行测试

1) service haproxy start

2)登录我们的配置页面

3)测试动静网页是否分离

访问静态网页

看静态网页为我们设置的www.helloword.com

4)访问动态网页

看动态网页为我们设置的hello Word 服务器



OK 我们的动静分离已经实现了.

时间: 09-22

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动静分离和会话粘性实例

HAProxy简介及常用配置文件详解见:http://blog.51cto.com/holmes975/2333207 一.HAProxy的动静分离实现实例 我们通过CentOS7.5中的HAProxy实现负载均衡调度功能,将用户发来的请求进行动态静态分离并将请求发送到后端不同的服务器上.三台后端服务器CentOS7.5A.CentOS7.5B.CentOS7.5C上分别开启httpd或nginx服务提供可访问的web端.(haproxy本身是不提供可访问的web页面) CentOS7.5---

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

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

haproxy+keepalived双主模型及动静分离的实现

实验目标: 1.haproxy统计页面的输出机制: 2.haproxy动静分离机制: 3.基于keepalived的高可用实现: 环境: vm8虚拟机 操作系统: centos 6.4 内核版本: 2.6.32-358.el6.x86_64 注: (1) 每个haproxy各有两块网卡,外网网卡选择Bridge,内网网卡选择Vmnet2; (2) 内部两台web服务器的网卡都是选择Vmnet2; 一.准备工作: 1.各节点IP地址相关设置 node1:  ifconfig eth1 192.16

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实现

haproxy实现动静分离机制

ACL的简介: haproxy的ACL用于实现基于请求报文的首部.响应报文的内容或其它的环境状态信息来做出转发决策,这大大增强了其配置弹性.其配置法则通常分为两步,首先去定义ACL,即定义一个测试条件,而后在条件得到满足时执行某特定的动作,如阻止请求或转发至某特定的后端. syntax: acl <aclname> <criterion> [flags] [operator] <value> ... Description: <aclname>:ACL名称,

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

HAproxy企业应用,TCP/HTTP动静分离

HAproxy企业应用,TCP/HTTP动静分离HAProxy的是一个免费的.开源的的tcp/http反向代理工具.负载均衡器,是一个企业非常快速和可靠的安全的解决方案,提供高可用性.高并发性,负载均衡和代理对TCP和基于HTTP的应用程序.它特别适用于流量非常高的网站.它已成为事实上的标准开源负载均衡器,现在随大多数主流Linux发行版一起提供,在互联网领域应用也是非常广泛,受欢迎的第三方工具. 在企业实际应用环境中,往往会根据业务请求将相关不同请求跳转到指定的后端服务器,比如客户静态资源请求