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安装和配置前端服务器

[root@haproxy ~]# yum install haproxy

2.安装完毕后查看都生成

[root@haproxy ~]# 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主配置文件,添加代理到后端的规则

[root@haproxy haproxy]# vim haproxy.cfgglobal    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                 30000listen 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 TRUEfrontend http-in       监听的前端服务    bind *:80          端口    mode http           log global          option httpclose    option logasap    option dontlognull    capture request  header Host len 20    capture request  header Referer len 60    acl url_static       path_beg       -i /static /p_w_picpaths /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 web1  192.168.100.1:80 check maxconn 8000#    server web2  192.168.100.2:80 check maxconn 8000backend 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.解压论坛程序包放入访问文件目录下,启动服务

[root@node1 ~]# unzip  JspRun\!_6.0.0_GBK.zip ^C[root@node1 ~]# cd  upload/*    /var/www/html/  -r^C[root@node1 ~]# service  httpd  start

2.node2上搭建tomcat服务,详情参考前面博客

[root@node2 conf]# vim server.xml添加访问的host的路径文件

3.解压论坛程序到相应的目录下,启动tomcat

[root@node1 ~]# unzip  JspRun\!_6.0.0_GBK.zip[root@node1 ~]# cd  upload/*    /web/app  -r[root@node2 ~]# catalina.sh  start

4.启动HAproxy服务

[root@haproxy haproxy]# service haproxy start

5.测试停止静态服务器看看是否不显示静态的文件

[root@node1 ~]# service  httpd  stopStopping httpd:                                            [  OK  ]

7.在启动静态服务器验证是否正常

[root@node1 ~]# service  httpd  startStopping httpd:                                            [  OK  ]

8.看来没有问题,分离成功。