首頁 >後端開發 >php教程 >利用nginx proxy_cache進行網站快取托底設定 nginx fastcgi cache nginx cache 設定 nginx file cach

利用nginx proxy_cache進行網站快取托底設定 nginx fastcgi cache nginx cache 設定 nginx file cach

WBOY
WBOY原創
2016-07-29 08:48:501065瀏覽

眾所周知nginx proxy_cache可以對請求的response進行緩存,起到類似CDN的作用,甚至有比CDN提供更多的功能,還可以用來緩存託底數據,當後台tomcat掛掉的時候,nginx直接將緩存中的托底資料回傳給使用者。

直接貼上詳細設定

upstream tomcat_localhost {

//注意此處超時時間不要設定太長
server 127.0.0.1:8080 weight=10 max_fails=127.0.0.1:8080 weight=10 max_fails=1 fail_timeout.空間配置,此配置定義在nginx設定檔的server上方即可

#proxy_cache_path : 代理快取的快取檔案路徑,/export/Data/huishou.jd.local 該目錄一定要提前建立好,否則設定檔偵測會失敗,且該目錄不能刪除,刪除後快取消失

# levels=1:2  nginx會在上述配置的快取檔案路徑下再建立兩級目錄,第一級目錄命名為一個字符,第二級目錄命名為2個字元

#keys_z max_size=100m 定義快取的名稱和快取大小,快取的名稱會在下面的location中使用,快取大小可以結合自己伺服器記憶體和系統需要快取的內容大小進行考慮設定

# inactive=1d 快取檔案的有效時間,快取到達該設定的時間後無論是否在使用都會從快取路徑下移除,然後回源取得新資料在產生快取檔案

proxy_cache_path /export/Datal/cache levels=1 :2 keys_z max_size=300m inactive=1d;

2.nginx快取托底攔截配置,此配置在特定的location內

location / {

#ache配置上面定義的快取空間名稱,必選設定配置發送;

#設定快取的key,也可以根據url中的參數進行自訂;$args表示所有參數,也可以使用其中的一個參數,例如:$arg_name,表示只取參數清單中的name參數,此處可以靈活配置,必選配置

proxy_cache_key $host$uri$is_args$args;

#設定繞過快取的請求url,即url中包含該配置的值,則該請求不從快取中獲取數據,非必須配置

proxy_cache_bypass $arg_noCache;

#根據響應碼設定緩存時間,超過這個時間即使緩存文件中有緩存數據,nginx也會回源請求新數據。此處的值也可以根據response中header中設定的

Cache-Control快取時間進行控制,header中的設定優先權最高,如果此處和header都沒有設定快取時間,則nginx不會產生快取文件,非必須配置,如果此處不做配置,header中必須有設定

proxy_cache_valid 200 1m;

#此處是托底配置,舊的總比出錯強,當nginx請求後台伺服器報錯的時候,如果返回配置的錯誤回應碼,nginx則直接取快取檔案中的舊資料回傳給用戶,托底使用必選設定proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;

#快取並發鎖,當快取沒有快取的時候只有快取一個請求回源tomcat請求數據,其他請求會等待。非必選設定

proxy_cache_lock on;

#等待鎖定逾時時間設定 非必選設定

proxy_cache_lock_timeout 1s;
proxy_pass

 

. x的緩存託底設定就完成了,在快取檔案有效時間內,即使後台tomcat掛掉,被快取過的頁面或介面也能正常提供服務。

以上就介紹了利用nginx proxy_cache進行網站快取托底配置,包含了nginx,cache方面的內容,希望對PHP教學有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn