kient88 发表于 2019-1-1 14:16:00

通过HAproxy实现动静分离

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

  实验环境:centos-6.4
  HAproxy:172.16.8.10&&192.168.100.254
  node1:192.168.100.1 静态服务器
  node2:192.168.100.2 动态服务器
  通过前端HAproxy反向代理上游web站点服务器,实现动静分离的效果来提高网站的快速性和安全性!
  -----------------------------------------------------------------------------------------
  1.现在HAproxy安装和配置前端服务器
# yum install haproxy  2.安装完毕后查看都生成
# rpm -ql   haproxy
/etc/haproxy
/etc/haproxy/haproxy.cfg
/etc/logrotate.d/haproxy
/etc/rc.d/init.d/haproxy
/usr/bin/halog
/usr/sbin/haproxy  3.编辑HAproxy主配置文件,添加代理到后端的规则
# vim haproxy.cfg
global
log         127.0.0.1 local2
chroot      /var/lib/haproxy
pidfile   /var/run/haproxy.pid
maxconn   5000                               最大连接数
user      haproxy                            服务使用户
group       haproxy                           使用的组
daemon                                          守护进程
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
----------------------------------------------------------------------
上述是全局段,一般不用什么修改。
----------------------------------------------------------------------
defaults
mode                  http                      使用协议
log                     global                  全局日志记录
option                  httplog                   详细记录http日志
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               30000
listen stats               监听的管理后台
mode http                服务模式
bind 172.16.8.10:888   指定ip地址和端口号
stats enable             开启状态页面
stats hide-version       不显示头部信息
stats uri   /haproxyadmin?stats访问的路径
stats realm   Haproxy\ Statistics   加密方式
stats auth    admin:admin         认证的用户和密码
stats admin if TRUE
frontend http-in       监听的前端服务
bind *:80          端口
mode http      
log global      
option httpclose
option logasap
option dontlognull
capture requestheader Host len 20
capture requestheader Referer len 60
acl url_static       path_beg       -i /static /images /javascript /stylesheets /css   CAL访问规则的动态页面
acl url_static       path_end       -i .jpg .jpeg .gif .png .js
匹配静态页面
use_backend static_servers          if url_static 匹配到的
default_backend dynamic_servers      默认交给那个服务器
backend static_servers   定义后端服务器的静态组
balance roundrobin   算法
server web1192.168.100.1:80 check maxconn 8000
#    server web2192.168.100.2:80 check maxconn 8000
backend dynamic_servers   定义到后端服务器的动态组
balance source         算法
#    server web1 192.168.100.1:80 check maxconn 2000
server web2 192.168.100.2:80 check maxconn 2000  查看HAproxy服务器状态图形管理界面

  node1上配置静态服务器使用apache,安装配置请参考前面的博客
  1.解压论坛程序包放入访问文件目录下,启动服务
  

# unzipJspRun\!_6.0.0_GBK.zip ^C
# cdupload/*    /var/www/html/-r^C
# servicehttpdstart  2.node2上搭建tomcat服务,详情参考前面博客
# vim server.xml
添加访问的host的路径文件



  3.解压论坛程序到相应的目录下,启动tomcat
# unzipJspRun\!_6.0.0_GBK.zip
# cdupload/*    /web/app-r
# catalina.shstart  4.启动HAproxy服务

# service haproxy start  5.测试停止静态服务器看看是否不显示静态的文件
# servicehttpdstop
Stopping httpd:                                            


  7.在启动静态服务器验证是否正常
  
# servicehttpdstart
Stopping httpd:                                            
  8.看来没有问题,分离成功。



页: [1]
查看完整版本: 通过HAproxy实现动静分离