一、HAProxy动静分离原理

        要实现动静分离效果(将保存静态页面的服务器和动态页面的服务器分成2类,HAProxy根据用户的URL当中的后缀来区分是静态页面还是动态页面,HAProxy工作在OSI7层下),现在分析一下怎么实现动静的:首先用户会先去请求首页,首页会返回整个页面的框架,用户浏览器会解析到还有很多资源需要再次向WEB发起请求,例如<img src=xxx/xxx.jpg>等html资源标签,此时HAProxy收到请求为xxx/xxx.jpg的请求后会判断为.JPG后缀的资源是静态页面,会向后端的静态页面发起请求,最后交给用户,如果请求的是.php结尾的则会调度到动态页面的节点中去,继而实现了动静分离效果。


二、配置验证

wKioL1UStsmx3nGYAAGUjCZm7a0377.jpg


配置:

 1、HAProxy动静分离配置

global  (略)
defaults(略)
frontend  server  192.168.192.194:80
      acl static path_end   /*.html  /*.jpg  /*.css   #静态页面的acl
      use_backend  static if static                  #静态页面就调度到static
      default_backend     app                        #默认调度节点

backend  static      #静态节点
        balance roundrobin
        server static  192.168.112.130:80 check
backend  app       #动态节点
        balance source
        server app1 192.168.112.131:80 check
#vi  /etc/sysctl.conf   #开启路由转发
 net.ipv4.ip_forward = 1
#sysctl  -p


2、动态页面配置

# yum  install  php httpd
# cd /var/www/html
# vi index.php
   <?php
       echo "this message from appserver";
       echo "<br>";
       echo "<img src=1.jpg width=300 height=300>";
   ?>
 #service httpd restart


3.静态页面的配置

# yum install  httpd
# cp 1.jpg  /var/www/html
#service httpd start


三、效果

wKiom1UStQGxAc7qAAX9sTt5UzM211.jpg