nginx反代varnish緩存服務器實現後端amp動靜分離架構
2.兩臺varnish反向代理用戶請求至三個(組)後端主機,分別為存儲靜態資源(htm,html,css,js),應用程序服務器(可以部署wordpress或Discuz!),圖片統一保存至圖片服務器;
3.用戶登錄後,可以通過wordpress發布新的博文,並且可以上傳圖片;
4.如果後端主機全部宕機,varnish可以使用過期緩存響應客戶端;
實驗規劃:
director1: 172.16.1.4 nginx+keepalived 主
director2: 172.16.1.2 nginx+keepalived 備
varnish1: 172.16.1.5
varnish2: 172.16.1.6
static server: 172.16.1.10
php server: 172.16.1.3
拓撲圖
一、配置兩臺nginx調度器主機
director1的keepalived配置
director2的keepalived配置
兩臺nginx的配置
在nginx.conf配置文件中的http段內添加upstream內容,將後端兩臺varnish服務器加入到該upstream中,同時做一致性hash算法保證緩存命中率。
後端健康狀態檢查設置:max_fails=1設定Nginx與服務器通信的嘗試失敗的次數。在fail_timeout參數定義的時間段內,如果失敗的次數達到此值,Nginx就認為服務器不可用。在下一個fail_timeout時間段,服務器不會再被嘗試。
二、兩臺varnish主機的配置
更改varnish的監聽端口為80
[root@varnish1 ~]# vim /etc/varnish/varnish.params
VARNISH_LISTEN_PORT=80
varnish配置文件內容
[root@varnish1 ~]# vim /etc/varnish/default.vcl
編譯使配置生效
[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主機配置
wordpress的主要如下步驟,詳細步驟不做贅述
下載安裝配置wordpress
cp wp-config-sample.php wp-config.php
數據庫配置
MariaDB [(none)]> create database wordpress;
MariaDB [(none)]> grant all on wordpress.* to 'wpuser'@'172.16.%.%' identified by '123456';
MariaDB [(none)]> flush privileges;
在動態主機的/var/www/html/下創建health.php用於動態健康狀態檢查
<h1>DynamicServer is Health.</h1>
在靜態主機的/var/www/html/下創建health.html用於靜態健康狀態檢查
<h1>StaticServer is Health.</h1>
四、測試
對後端主機健康狀態檢查
[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.
backend.list
200
Backend name Refs Admin Probe
default(127.0.0.1,,8080) 2 probe Healthy (no probe)
dynamic(172.16.1.10,,80) 1 probe Healthy 3/3
static(172.16.1.3,,80) 1 probe Healthy 3/3
客戶端登陸keepalived生成的虛擬ip地址172.16.1.100
第一次查看靜態頁面,未緩存X-Cache為miss
刷新一下,緩存服務器就緩存了X-Cache為HIT
查看動態頁面
登陸wordpress可以看到剛才正常上傳圖片的博客
nginx反代varnish緩存服務器實現後端amp動靜分離架構