利用HAProxy简单实现wordpress动静分离示例

系统拓扑图如下:

                                        图片.png

此处我利用Centos7.5作为服务器,将访问到此处的报文动静分离到下端服务器,Centos7.5A与Centos7.5B作为动态页面相应服务器,Centos7.5C用来反馈静态页面;Centos7.5 IP地址:179.5.99.12;Centos7.5A IP地址:179.5.99.13;Centos7.5B IP地址:179.5.99.14;Centos7.5C IP地址:179.5.99.15;


    Centos7.5:

        在Centos7.5服务器上,安装HAProxy应用;

            1>官方站点下载较新版本(https://www.haproxy.com/)

            2>直接在base源中安装稳定版本

        第一步:启动HAProxy

                            图片.png       


        默认情况下HAProxy监听5000端口,为了使其与后端服务器httpd相应连接我修改配置文件让他监听到80端口;上图中可以看到80端口由haproxy监听;表示haproxy已经启动;

        第二步:修改配置文件

                            图片.png

            上图为/etc/haproxy/haproxy.cfg配置文件的一部分;

            frontend  main *:80                                                                           // 名称main配置段监听所有地址的80端口
            acl url_static   path_beg     -i /static /images /javascript /stylesheets          //不区分大小写,以/static /images 等开头的文件可以匹配到url_static中     

            acl url_static       path_end       -i .jpg .gif .png .css .js .txt .html .htm        //不区分大小写,以.jpg .gif 等结尾的文件可以匹配到url_static中
          

             use_backend static          if url_static              //如果符合url_static条件则使用static执行;
            default_backend             app                           //默认的backend为app
            errorfile 403  /etc/error.txt                              //错误码为403的访问重定向到/etc/error.txt

            backend static                                                 //定义static
            balance     roundrobin                                    //定义算法为roundrobin
            server      static 179.5.99.15:80 check             //访问到服务器179.5.99.15:80(Centos7.5C)
            backend app                                                   //定义app
            balance     leastconn                                       //定义算法
            server  app1 179.5.99.13:80 check                  //访问到服务器179.5.99.13:80(Centos7.5A)

            server  app2 179.5.99.14:80 check                 //访问到服务器179.5.99.14:80(Centos7.5B),此处涉及到一个负载均衡,根据后端服务器真实情况调整调度情况;




    Centos7.5A:安装httpd,mariadb,NFS服务;(此前构建过LAMP以及NFS实现网络构建wordpress服务在其他博文中)

            安装httpd,NFS,mariadb服务请手动翻找之前的文章;

            第一步:启动httpd,mariadb,nfs服务

                图片.png

        

        第二步:修改httpd配置文件

                图片.png

                    我曾经通过httpd构建过wordpress,上图为其中一个httpd的虚拟主机;配置文件详解请翻找LAMP博文;

                图片.png


                上图是我通过浏览器访问我构建的wordpress站点;

        

            第三步:通过nfs实现网络共享文件夹,目的是为了保证在负载均衡的同时访问到的wordpress站点是同一个站点;

                    修改nfs配置文件/etc/exports

                    /etc/httpd/vhost/vhost1    *(rw)   //共享目录为/etc/httpd/vhost/vhost1    任何主机都可以以可读可写的状态挂载




            Centos7.5B:同Centos7.5A,只是不需要NFS服务;

                    在Centos7.5B上挂载Centos7.5A上共享的目录;

                    [root@localhost ~]# mount -t nfs  179.5.99.13:/etc/httpd/vhost/vhost1   /etc/httpd/vhost/vhost1


            Centos7.5C:

                    在Centos7.5C上只需要布置httpd服务就可以;使其能够正常被访问;


        

      下面通过实验验证上述配置:

        1.利用浏览器访问Centos7.5下的静态文件(179.5.99.12/index.html) 

               图片.png        

        如图所示,默认访问到了下端的静态服务器Centos7.5C;

        

        2.访问Centos7.5的wordpress(179.5.99.12/wordpress)

        图片.png

            访问到centos7.5A的wordpress,刷新后结果一样,所以说明通过7.5A与7.5B的服务器连接到的都是同一个wordpress;即通过HAProxy实现动静分离;

相关文章
相关标签/搜索