利用HAProxy简单实现wordpress动静分离示例
系统拓扑图如下:http://s1.运维网.com/images/20180706/1530862072452488.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
http://s1.运维网.com/images/20180706/1530862524334515.png
默认情况下HAProxy监听5000端口,为了使其与后端服务器httpd相应连接我修改配置文件让他监听到80端口;上图中可以看到80端口由haproxy监听;表示haproxy已经启动;
第二步:修改配置文件
http://s1.运维网.com/images/20180706/1530862925638668.png
上图为/etc/haproxy/haproxy.cfg配置文件的一部分;
frontendmain *: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 //定义算法
serverapp1 179.5.99.13:80 check //访问到服务器179.5.99.13:80(Centos7.5A)
serverapp2 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服务
http://s1.运维网.com/images/20180706/1530864065333211.png
第二步:修改httpd配置文件
http://s1.运维网.com/images/20180706/1530864250359906.png
我曾经通过httpd构建过wordpress,上图为其中一个httpd的虚拟主机;配置文件详解请翻找LAMP博文;
http://s1.运维网.com/images/20180706/1530864383197129.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上共享的目录;
# mount -t nfs179.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)
http://s1.运维网.com/images/20180706/1530865248693316.png
如图所示,默认访问到了下端的静态服务器Centos7.5C;
2.访问Centos7.5的wordpress(179.5.99.12/wordpress)
http://s1.运维网.com/images/20180706/1530865370161920.png
访问到centos7.5A的wordpress,刷新后结果一样,所以说明通过7.5A与7.5B的服务器连接到的都是同一个wordpress;即通过HAProxy实现动静分离;
页:
[1]