小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

11、Nginx緩存配置

 拿破侖小子 2018-05-13

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

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

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

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

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

二、永久緩存配置

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

1、準(zhǔn)備服務(wù)器

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

2、緩存配置

修改Nginx配置文件nginx.conf:

11、Nginx緩存配置

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

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

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

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

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

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

3、驗證測試

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

11、Nginx緩存配置

11、Nginx緩存配置

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

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

11、Nginx緩存配置

三、臨時緩存配置

Nginx服務(wù)器中,還有一種使用proxy_cache指令設(shè)置的臨時緩存配置,它采用md5算法將請求鏈接進(jìn)行hash之后,根據(jù)具體配置生成緩存文件目錄,保存響應(yīng)的數(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;

11、Nginx緩存配置

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

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

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

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

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

2、server塊添加臨時緩存的相關(guān)配置:

11、Nginx緩存配置

location / {

# 設(shè)置緩存區(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; #其他未設(shè)置的狀態(tài)緩存1分鐘

proxy_temp_path cache_tmp;

if (!-e $request_filename){

proxy_pass http://192.168.44.32;

}

}

說明:

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

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

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

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

  • HIT:緩存命中;

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

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

  • UPDATING:正在更新緩存,將使用舊的應(yīng)答;

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

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

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

3、訪問測試

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

HIT表示設(shè)置成功。

11、Nginx緩存配置

11、Nginx緩存配置

過段時間后文件被刪除

11、Nginx緩存配置

常用緩存配置指令:

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

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

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

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

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

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

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

四、緩存清理配置

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

1、安裝ngx_cache_purge模塊

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

解壓ngx_cache_purge-master.zip:

11、Nginx緩存配置

配置:./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

11、Nginx緩存配置

編譯:make && make install

11、Nginx緩存配置

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

11、Nginx緩存配置

2、配置緩存清理功能

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

11、Nginx緩存配置

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

  • 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指令設(shè)置的規(guī)則相同;

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

3、訪問測試

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

11、Nginx緩存配置

查看后,在查看目錄結(jié)構(gòu):

11、Nginx緩存配置

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

11、Nginx緩存配置

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

11、Nginx緩存配置

上篇:10、Nginx負(fù)載均衡

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多