1. 程式人生 > >CentOS 7.4 Tengine安裝配置詳解(七)

CentOS 7.4 Tengine安裝配置詳解(七)

tengine cache purge

十六、緩存及緩存清理

1、修改node1配置文件nginx.conf

(1)http配置段中增加如下代碼:

proxy_cache_path /usr/local/tengine/cache levels=1:1:2 keys_zone=mycache:200m inactive=15d max_size=100g;

備註:

? levels=1:1:2表示1個字符的一級緩存目錄和二級緩存目錄,2個字符的三級緩存目錄

? keys_zone=mycache:200m表示緩存名稱為mycache,內存緩存空間大小為200m

? inactive=15d表示15天內沒有被訪問的內容會被自動清除

(2)在指定location配置段中增加如下代碼:

server {

listen 80;

server_name node1.qiuyue.com;

location / {

root html;

index index.html index.html;

}

location /bbs {

proxy_pass http://192.168.1.144/bbs;

index index.html index.html;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_cache mycache;

proxy_cache_key $host$uri$is_args$args;

# 將域名、URI、參數組合成緩存的Key值,再根據Key值哈希,存儲緩存內容到緩存目錄中

proxy_cache_valid 200 302 10m;

proxy_cache_valid 301 1h;

proxy_cache_valid any 1m;

proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;

add_header X-Cache $upstream_cache_status;

}

}

備註:本地已有資源無需緩存,建議緩存後端服務器的資源


2、創建用於存儲緩存的目錄:# mkdir -pv /usr/local/tengine/cache


3、設置存儲緩存目錄的權限:# chown -R tengine:tengine /usr/local/tengine/cache


4、重載服務:# nginx -t # nginx -s reload

技術分享圖片


5、默認存儲緩存的目錄為空:# ls /usr/local/tengine/cache

技術分享圖片


6、本地Windows 10首次訪問http://node1.qiuyue.com/bbs(按F12進入調試模式),並查看緩存目錄中的內容:

技術分享圖片

技術分享圖片


7、刷新頁面,即本地Windows 10第二次訪問http://node1.qiuyue.com/bbs

技術分享圖片

備註:緩存已經命中


8、修改node2測試頁內容:# echo "<h3>bbs on node2 new</h3>" > /var/www/html/bbs/index.html


9、刷新頁面,依舊是緩存中的內容:

技術分享圖片


10、清理緩存:

(1)動態加載ngx_cache_purge模塊:

# cd /tmp

# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz

# tar -xf ngx_cache_purge-2.3.tar.gz

# dso_tool --add-module=/tmp/ngx_cache_purge-2.3

# vim nginx.conf

dso {

load ngx_cache_purge_module.so;

}

(2)編輯location:

location ~ /purge(/.*) {

allow 192.168.1.0/24;

deny all;

proxy_cache_purge mycache $host$1$is_args$args;

access_log off;

}

# nginx -t # nginx -s reload # nginx -m

(3)清理緩存

如果要清理http://node1.qiuyue.com/bbs/index.html的緩存,則訪問http://node1.qiuyue.com/purge/bbs/index.html即可,會出現Successful purge的提示

備註:可以直接刪除/usr/local/tengine/cache目錄中的所有內容來達到清理緩存的目的,但是不建議這樣操作。

CentOS 7.4 Tengine安裝配置詳解(七)