haproxy varnish

(1) 動靜分離部署wordpress,動靜都要能實現負載均衡,要注意會話的問題;

(2) 在haproxy和後端主機之間添加varnish進行緩存;

(3) 設計拓撲;

(4) haproxy的設定要求:

(a) stats page,要求僅能通過本地訪問使用管理接口;

(b) 動靜分離;

(c) 分別考慮不同的服務器組的調度算法;

(5) haproxy高可用;

實驗規劃:

利用keepalived主備高可用兩個haproxy服務器

對varnish緩存服務器做高可用

動態web集羣

靜態web集羣

haproxy1: 172.16.1.4

haproxy2: 172.16.1.2

varnish1: 172.16.1.5

varnish2: 172.16.1.6

dynamic server1:172.16.1.3

dynamic server2:172.16.1.7

static server1: 172.16.1.10

static server2: 172.16.1.8

拓撲圖

00.PNG

一、兩臺haproxy配置文件配置

haproxy1.PNG

haproxy2.PNG

啓動服務

~]# systemctl start haproxy

~]# systemctl status haproxy #查看狀態

~]# ss -tnlp #查看80和9999端口是否啓用

~]# systemctl enable haproxy #設置開機啓動

二、keepalived的配置

haproxy1的keepalived配置

11111.PNG

haproxy2的keepalived配置

22222.PNG

三、兩臺varnish主機的配置

更改varnish的監聽端口爲80

[root@varnish1 ~]# vim /etc/varnish/varnish.params

VARNISH_LISTEN_PORT=80

varnish配置文件內容

[root@varnish1 ~]# vim /etc/varnish/default.vcl

aaa.PNG

bbb.PNG

ccc.PNG

編譯使配置生效

[root@varnish1 ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082

200


Varnish Cache CLI 1.0


Linux,3.10.0-327.el7.x86_64,x86_64,-smalloc,-smalloc,-hcritbit

varnish-4.0.5 revision 07eff4c29

Type 'help' for command list.

Type 'quit' to close CLI session.

vcl.list

200

available 0 boot

active 0 myconf3

varnish> vcl.load conf1 default.vcl

200

VCL compiled.

vcl.use conf1

200

VCL 'conf1' now active

vcl.list

200

available 0 boot

available 0 myconf3

active 0 conf1

四、後端動靜服務器wordpress主機配置

後端amp配置不做贅述

在動態主機的/var/www/html/下創建health.php用於動態健康狀態檢查

<h1>DynamicServer is Health.</h1>

在靜態主機的/var/www/html/下創建health.html用於靜態健康狀態檢查

<h1>StaticServer is Health.</h1>

五、客戶端查看

客戶端登陸haproxy的stats page

登陸.PNG

關閉一臺varnish服務器後,可以在stats page看到一臺正常運行,一臺關閉了

登陸2.PNG

登陸wordpress可以看到之前正常上傳圖片的博客

捕獲.PNG

六、總結

1、架構優點:

(1)HAProxy爲Varnish緩存服務器提供了高可用的負載均衡,其使用的算法,也爲Varnish提升了緩存命中率;

(2)HAProxy提供Web圖形化管理界面,使得管理更加便捷高效;

(3)Varnish的高效緩存機制極大的提升了Web應用的性能,降低了Web服務器的壓力;

(4)Varnish給後端Web服務器提供了高可用負載均衡,並使用了動態分離技術,保障了後端主機的冗餘,顯著提升了其性能;

(5)使用Keepalive對HAproxy做高可用解決了單點故障問題。

2、不足之處:

(1)該架構沒有解決存儲的問題。

解決方案:可以使用NFS+Rsync+inodify實現數據實時同步,再用keepalive做高可用。

(2)MysqlServer,沒有分離

解決方案:獨立數據庫服務器,對其設置數據庫主從複製,讀寫分離;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章