1. 程式人生 > >利用HAProxy簡單實現wordpress動靜分離示例

利用HAProxy簡單實現wordpress動靜分離示例

配置 src img 文件夾 fault 利用 front 開頭 修改配置

系統拓撲圖如下:

技術分享圖片

此處我利用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

技術分享圖片


默認情況下HAProxy監聽5000端口,為了使其與後端服務器httpd相應連接我修改配置文件讓他監聽到80端口;上圖中可以看到80端口由haproxy監聽;表示haproxy已經啟動;

第二步:修改配置文件

技術分享圖片

上圖為/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服務

技術分享圖片


第二步:修改httpd配置文件

技術分享圖片

我曾經通過httpd構建過wordpress,上圖為其中一個httpd的虛擬主機;配置文件詳解請翻找LAMP博文;

技術分享圖片


上圖是我通過瀏覽器訪問我構建的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)

技術分享圖片

如圖所示,默認訪問到了下端的靜態服務器Centos7.5C;

2.訪問Centos7.5的wordpress(179.5.99.12/wordpress)

技術分享圖片

訪問到centos7.5A的wordpress,刷新後結果一樣,所以說明通過7.5A與7.5B的服務器連接到的都是同一個wordpress;即通過HAProxy實現動靜分離;



利用HAProxy簡單實現wordpress動靜分離示例