天天看點

nginx varnish

1.前端nginx做排程器及反代伺服器,将使用者的請求排程至後端的兩台varnish,緩存排程算法使用一緻性hash算法保證緩存命中率;

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

拓撲圖

blob.png

一、配置兩台nginx排程器主機

director1的keepalived配置

11111.PNG

director2的keepalived配置

22222.PNG

兩台nginx的配置

在nginx.conf配置檔案中的http段内添加upstream内容,将後端兩台varnish伺服器加入到該upstream中,同時做一緻性hash算法保證緩存命中率。

後端健康狀态檢查設定:max_fails=1設定Nginx與伺服器通信的嘗試失敗的次數。在fail_timeout參數定義的時間段内,如果失敗的次數達到此值,Nginx就認為伺服器不可用。在下一個fail_timeout時間段,伺服器不會再被嘗試。

33333.PNG

二、兩台varnish主機的配置

更改varnish的監聽端口為80

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

VARNISH_LISTEN_PORT=80

varnish配置檔案内容

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

4444.PNG

5555.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

available 0 boot

active 0 myconf3

varnish> vcl.load conf1 default.vcl

VCL compiled.

vcl.use conf1

VCL 'conf1' now active

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>

四、測試

對後端主機健康狀态檢查

backend.list

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可以看到剛才正常上傳圖檔的部落格

      本文轉自Vincent一馬 51CTO部落格,原文連結:http://blog.51cto.com/mazhenbo/2084363,如需轉載請自行聯系原作者