haproxy实现动静分离

本节我们来讲一讲haproxy的相关知识。

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

好的下面我们就来实现一下这个过程。

实验拓扑图:

代理服务器为内部的2台WEB服务进行代理,其中一台是动态内容的服务器,另一台是静态内容的服务器,haproxy会自动识别出请求的内容为动态还是静态,从而将请求分发到各自的服务器进行响应。

动态服务器

该服务器中安装了PHP服务,这里我是直接yum安装的。因此可以响应PHP请求,在主页中放的是一个PHP网页,注意,相应的在httpd服务器的配置文件中需要修改的一些选项还是得修改的。

静态服务器

该服务器中没有安装PHP,只在跟目录中放了一个普通的主页面

代理服务器

直接yum安装haproxy

修改配置文件

[[email protected] ~]# vim /etc/haproxy/haproxy.cfg

#---------------------------------------------------------------------   
# Example configuration for a possible web application.  See the    
# full configuration options online.    
#    
#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt    
#    
#---------------------------------------------------------------------
#---------------------------------------------------------------------   
# Global settings    
#---------------------------------------------------------------------    
global    
    # to have these messages end up in /var/log/haproxy.log you will    
    # need to:    
    #    
    # 1) configure syslog to accept network log events.  This is done    
    #    by adding the ‘-r‘ option to the SYSLOGD_OPTIONS in    
    #    /etc/sysconfig/syslog    
    #    
    # 2) configure local2 events to go to the /var/log/haproxy.log    
    #   file. A line like the following can be added to    
    #   /etc/sysconfig/syslog    
    #    
    #    local2.*                       /var/log/haproxy.log    
    #    
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy                                                                  #全局配置端不需要改动   
    pidfile     /var/run/haproxy.pid    
    maxconn     4000    
    user        haproxy    
    group       haproxy    
    daemon
    # turn on stats unix socket   
    stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------   
# common defaults that all the ‘listen‘ and ‘backend‘ sections will    
# use if not designated in their block    
#---------------------------------------------------------------------    
defaults    
    mode                    http    
    log                     global    
    option                  httplog    
    option                  dontlognull    
    option http-server-close    
    option forwardfor       except 127.0.0.0/8    
    option                  redispatch    
    retries                 3    
    timeout http-request    10s    
    timeout queue           1m    
    timeout connect         10s    
    timeout client          1m    
    timeout server          1m    
    timeout http-keep-alive 10s    
    timeout check           10s    
    maxconn                 3000
#---------------------------------------------------------------------   
# main frontend which proxys to the backends    
#---------------------------------------------------------------------    
frontend  main     
    bind :80                                        #绑定端口    
    acl url_static       path_beg       -i /static /images /javascript /stylesheets     #定义静态内容前缀    
    acl url_static       path_end       -i .jpg .gif .png .css .js  .html                             #定义静态内容后缀
    use_backend static          if url_static   
    default_backend             app
#---------------------------------------------------------------------   
# static backend for serving up images, stylesheets and such    
#---------------------------------------------------------------------    
backend static    
    balance     roundrobin                                                                          
    server      static 172.16.6.1:80  check                                                  #定义后端静态内容服务器
#---------------------------------------------------------------------   
# round robin balancing between the various backends    
#---------------------------------------------------------------------    
backend app    
    balance     roundrobin    
    server  app1 172.16.6.2:80  check                                                      #定义后端动态内容服务器

配置完成启动服务

下面就可以开始测试了

静态网页:

动态网页:

OK,这样我们的一个最简单的动静分离就实现了,谢谢!

时间: 2024-10-25 01:56:25

haproxy实现动静分离的相关文章

HAProxy+LAMP动静分离

实验目的:为了减轻后端服务器的承载量,使用HAProxy做动静分离,将动态资源放在动态web组中,静态资源放在static组中,图片放在image server中,数据库单独用一台服务器. 网络拓扑图 配置HAProxy服务器 ~]# yum -y install haproxy ~]# vim /etc/haproxy/haproxy.cfg frontend  main *:80     acl url_web          path_end       -i .html .css .j

haproxy实现动静分离机制

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

haproxy实现动静分离-实例

环境拓扑图 环境准备: Centos6.5x86_64 关闭防火墙和Selinux node1:HAProxy    VIP:eth1:192.168.1.19/24    eth2:192.168.19.1/24 node2:static-server (eth0: 192.168.19.2/24     网关:192.168.19.1) node3:dynamic-server(eth0: 192.168.19.3/24 网关:192.168.19.1) 一.安装并配置Haproxy服务器

haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用

   haproxy于Nginx一样都是做反向代理,但是与其相比,haproxy更专注于web代理.HAProxy是单进程多请求,也支持多进程,HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.       haproxy功能的实现全部基于配置文件,所以我们需要了解很多的配置指令,玩转指令,再结合实际情况,我们就玩转了haproxy,其实haproxy的配置也很简单,下面我们一起简单认识和了解一些haproxy的基本功能和相关知识.         CentOS6.5自带的rpm

HAproxy(二)动静分离

(一)简述 在现实的应用环境中,往往根据业务请求的不同将相关的请求指定到不同的后端服务器中,例如客户是静态资源的请求,haproxy就将请求转发给静态服务器,如果是动态的请求就转发给静态服务器,haproxy实现动静分离是通过acl匹配规则来实现这一目的. 服务器名称 IP 说明 HAProxy 192.168.180.23 web服务器 Static Server 192.168.180.4 静态资源服务器(nginx代理) PHP Server 192.168.180.9 php服务器(ng

haproxy的web服务负载均衡、动静分离、 MySQL服务负载均衡、状态监控

实验环境:基于centos6.6 haproxy-Server:172.16.249.98  hostname:node1 upsteram server1:172.16.249.100 hostname:node2 upstream server2:172.16.249.99  hostname:node3 web服务的负载均衡以及状态监控: 设置记录haproxy日志的文件位置: node1: #vim /etc/rsyslog.conf (1)启用UDP: # Provides UDP s

HAProxy+KeepAlived实现web服务高可用、动静分离等

大致规划: 主机 IP 描述 VIP 192.168.0.222 对外提供高可用IP haproxy+keepalived (node1) 192.168.0.111 haproxy为后端两台WEB服务的做动静分离:keepalived为haproxy做高可用. haproxy+keepalived (node2) 192.168.0.112 WEB                (node3) 192.168.0.113 提供静态请求响应 Apache+PHP+MySQL   (node4)

HAproxy的负载均衡+日志独立+动静分离+读写分离的配置

主机环境   redhat6.5 64位 实验环境   服务端1 ip 172.25.29.2            服务端2 ip 172.25.29.3             管理端1 ip 172.25.29.1  防火墙状态:关闭 1.Haproxy的负载均衡及测试 A)负载均衡的配置 [[email protected] ~]# yum install haproxy -y            #安装haproxy [[email protected] ~]# vim /etc/h

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

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