九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
11、Nginx緩存配置

對于經(jīng)常被用戶訪問的內(nèi)容,若每一次都要到后端服務器中獲取,會給服務器造成很大的壓力。為此,利用反向代理服務器對訪問頻率較多的內(nèi)容進行緩存。

Nginx提供了兩種Web緩存方式,一種是永久緩存,另一種是臨時性緩存。

一、緩存實現(xiàn)原理

Web緩存服務器位于內(nèi)容源Web服務器和客戶端之間,當客戶端用戶訪問一個URL時,Web緩存服務器就會請求相應的內(nèi)容源Web服務器,并將響應的信息緩存至內(nèi)存或磁盤,然后,當下一個請求到來時,如果訪問的是相同的URL,Web緩存服務器會直接將已緩存的內(nèi)容輸出給客戶端,而不用再次向內(nèi)容源Web服務器發(fā)送請求。

利用緩存服務器,可以有效降低內(nèi)容源服務器和數(shù)據(jù)庫的負載,提高用戶訪問的響應速度。

二、永久緩存配置

Nginx提供的proxy_store指令可以用于將內(nèi)容源服務器響應的內(nèi)容緩存到本地,若不手動刪除,該緩存文件會一直生效,永久緩存方式適用于緩存網(wǎng)站幾乎不會改變的一些內(nèi)容。

1、準備服務器

31作為Web緩存服務器,32作為內(nèi)容源Web服務器

2、緩存配置

修改Nginx配置文件nginx.conf:

  • root cache:用于指定緩存文件的保存目錄;

  • proxy_store:用于開啟本地緩存;

  • proxy_store_access:設置緩存的讀寫規(guī)則;

  • proxy_temp_path:設置反向代理時接收的數(shù)據(jù)臨時存儲文件的目錄(會由Nginx在配置生效后自動創(chuàng)建);

  • if (!-e $request_filename):!-e:檢查一個文件,目錄或符號鏈接是否存在,$request_filename:當前請求的文件路徑或URI。

注意:if和(有空格,!-e和$request_filename有空格。

3、驗證測試

在32服務器中建立test目錄并在目錄下新建index.html并存放一張圖片。

訪問后查看cache目錄文件,如果tree報command not found,

執(zhí)行如下安裝:yum -y install tree后再次執(zhí)行tree命令:

三、臨時緩存配置

Nginx服務器中,還有一種使用proxy_cache指令設置的臨時緩存配置,它采用md5算法將請求鏈接進行hash之后,根據(jù)具體配置生成緩存文件目錄,保存響應的數(shù)據(jù)。

1、http塊緩存配置:

proxy_temp_path /usr/local/nginx/proxy_temp_dir;

proxy_cache_path /usr/local/nginx/proxy_cache_dir levels=1.2 keys_zone=cache_one:50m;

inactive= 1m max_size= 500m;

  • proxy_cache_dir:表示用戶自定義的緩存文件保存目錄;

  • levels:表示緩存目錄下的層級目錄結構,它是根據(jù)hash之后的請求url,地址創(chuàng)建的,目錄名稱從哈希后的字符串結尾處開始截??;

  • keys_zone:指定緩存區(qū)名稱及大小,例如:cache_one:50m表示緩存名稱為cache_one,在內(nèi)存中的空間是50MB;

  • inactive:表示主動清空在指定時間內(nèi)未被訪問的緩存。1m:1分鐘,1h:1小時,1d:1天;

  • max_size:表示指定磁盤空間大??;

2、server塊添加臨時緩存的相關配置:

location / {

# 設置緩存區(qū)域名稱

proxy_cache cache_one;

# 以域名,uri,參數(shù)組合成web緩存的key值,nginx根據(jù)key值hash

proxy_cache_key $host$uri$is_args$args;

proxy_cache_valid 200 10m; #200緩存10分鐘

proxy_cache_valid 304 1m; #304緩存1分鐘

proxy_cache_valid 301 302 1h; #301,302緩存1小時

proxy_cache_valid any 1m; #其他未設置的狀態(tài)緩存1分鐘

proxy_temp_path cache_tmp;

if (!-e $request_filename){

proxy_pass http://192.168.44.32;

}

}

說明:

  • proxy_cache_key:用于設置hash的key值組成規(guī)則,在省略的情況下,Nginx將使用默認的key值組成規(guī)則;

  • proxy_cache_valid:對不同http狀態(tài)不同設置不同時間的緩存;

  • $is_args:有url參數(shù)時,則值為?,否則為空字符串;

緩存狀態(tài)返回值:

  • HIT:緩存命中;

  • MISS:未命中,請求被傳送到后端;

  • EXPIRED:緩存已過期,請求被傳到后端;

  • UPDATING:正在更新緩存,將使用舊的應答;

  • STALE:無法從后端服務器更新緩存時,返回了舊的緩存內(nèi)容(可通過proxy_cache_use_stale指令配置);

  • BYPASS:緩存被繞過了(可通過proxy_cache_bypass指令配置);

  • REVALIDATED:啟用proxy_cache_revalidate指令后,當緩存內(nèi)容過期時,Nginx通過一次If-Modiffied-Since的請求頭去驗證緩存內(nèi)容是否過期,此時會返回該狀態(tài);

3、訪問測試

通過開發(fā)工具選擇Network選項,查看Response Headers標簽選項,查看X-Via和X-Cache的值。

HIT表示設置成功。

過段時間后文件被刪除

常用緩存配置指令:

  • proxy_cache_bypass:用于配置Nginx向客戶端發(fā)送響應數(shù)據(jù)時,不從緩存中獲取的條件;

  • proxy_cache_lock:用于設置是否開啟緩存的鎖功能;

  • proxy_cache_lock_timeout:用于設置緩存的鎖功能開啟以后的超時時間;

  • proxy_no_cache:配置在什么情況下不使用緩存功能;

  • proxy_cache_min_uses:當同一個URL被重復請求達到指定的次數(shù)后,才對該URL進行緩存;

  • proxy_cache_revalidate:用于當緩存內(nèi)容過期時,Nginx通過一次If-Modified-Since的請求去驗證緩存內(nèi)容是否過期;

  • proxy_cache_use_stale:設置狀態(tài),用于內(nèi)容源Web服務器處于這些狀態(tài)時,Nginx向客戶端響應歷史緩存數(shù)據(jù);

四、緩存清理配置

利用Nginx緩存雖然減輕了后端服務器的壓力,但是會導致文件修改后無法及時更新緩存,只有刪除服務器中的緩存文件,Nginx才會重新請求后端服務器。

1、安裝ngx_cache_purge模塊

在github上下載:https://github.com/search?utf8=%E2%9C%93&q=ngx_cache_purge&type=

解壓ngx_cache_purge-master.zip:

配置:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/ngx_cache_purge-master --add-module=/root/nginx-upstream-fair

編譯:make && make install

查看安裝的模塊:/usr/local/nginx/sbin/nginx -V

2、配置緩存清理功能

修改nginx.conf配置文件,在server塊中添加如下清理緩存配置

  • ~/purge(/.*):第一行用于匹配用戶的請求,請求地址符合/purge/URI形式時,就會清理URI對應的緩存文件;

  • allow:指定僅允許IP為1的客戶端清理緩存;

  • proxy_cache_purge:指定名稱cache_one緩存區(qū),和待清理文件的key值組成規(guī)則;

在安裝完purge模塊后,可以使用該模塊提供的指令實現(xiàn)緩存清理,在使用指令時需要遵循幾個規(guī)則:

  • 指定的緩存區(qū)名稱要與proxy_cache_path指令出現(xiàn)的緩存區(qū)名稱一致;

  • 指定的Key直組成規(guī)則,要與proxy_cache_key指令設置的規(guī)則相同;

  • 清理緩存的location編寫位置,要在server塊中所有的location之前,防止其他正則提前匹配;

3、訪問測試

清理proxy_cache_dir后訪問index.html地址。

查看后,在查看目錄結構:

訪問purge/index.html,清理緩存文件,從圖可以看到當前清理的緩存文件的key值

清理完成后在此查看目錄:

上篇:10、Nginx負載均衡

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
nginx的web緩存服務環(huán)境部署記錄
用Nginx搭建CDN服務器方法-開啟Nginx緩存與鏡像,自建圖片服務器
nginx1.0.0配ngx_cache_purge實現(xiàn)高效的反向代理
『互聯(lián)網(wǎng)架構』軟件架構
如何利用Nginx的緩沖、緩存優(yōu)化提升性能
【Nginx28】Nginx學習:代理模塊(二)緩存與錯誤處理
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服