国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

Nginx緩存Cache的配置方案以及相關內存占用問題解決

2024-08-30 12:26:21
字體:
來源:轉載
供稿:網友

nginx緩存cache的5種方案
 1、傳統緩存之一(404)
  這個辦法是把nginx的404錯誤定向到后端,然后用proxy_store把后端返回的頁面保存。
  配置:

  location / {  root /home/html/;#主目錄  expires 1d;#網頁的過期時間  error_page 404 =200 /fetch$request_uri;#404定向到/fetch目錄下  }  location /fetch/ {#404定向到這里  internal;#指明這個目錄不能在外部直接訪問到  expires 1d;#網頁的過期時間 alias /html/; proxy_store會將文件保存到這目錄下  proxy_pass//www.survivalescaperooms.com/;#后端upstream地址,/fetch同時是一個代理  proxy_set_header Accept-Encoding '';#讓后端不要返回壓縮(gzip或deflate)的內容,保存壓縮后的內容會引發亂子。  proxy_store on;#指定nginx將代理返回的文件保存  proxy_temp_path /home/tmp;#臨時目錄,這個目錄要和/home/html在同一個硬盤分區內  }

  使用的時候還有要注意是nginx要有權限往/home/tmp和/home/html下有寫入文件的權限,在linux下nginx一般會配置成nobody用戶運行,這樣這兩個目錄就要chown nobody,設成nobody用戶專用,當然也可以chmod 777,不過所有有經驗的系統管理員都會建議不要隨便使用777。
  2、傳統緩存之二(!-e)
  原理和404跳轉基本一致,但更簡潔一些:

  location / {  root /home/html/;  proxy_store on;  proxy_set_header Accept-Encoding '';  proxy_temp_path /home/tmp;  if ( !-f $request_filename )  {  proxy_pass//www.survivalescaperooms.com/;  }  }

  可以看到這個配置比404節約了不少代碼,它是用!-f來判斷請求的文件在文件系統上存不存在,不存在就proxy_pass到后端,返回同樣是用proxy_store保存。
  兩種傳統緩存都有著基本一樣的優點和缺點:
  缺點1:不支持帶參數的動態鏈接,比如read.php?id=1,因為nginx只保存文件名,所以這個鏈接只在文件系統下保存為read.php,這樣用戶訪問read.php?id=2時會返回不正確的結果。同時不支持//www.survivalescaperooms.com/這種形式的首頁和二級目錄//www.survivalescaperooms.com/download/,因為nginx非常老實,會將這樣的請求照鏈接寫入文件系統,而這個鏈接顯然是一個目錄,所以保存失敗。這些情況都需要寫rewrite才能正確保存。
  缺點2:nginx內部沒有緩存過期和清理的任何機制,這些緩存的文件會永久性地保存在機器上,如果要緩存的東西非常多,那就會撐暴整個硬盤空間。為此可以使用一個shell腳本定期清理,同時可以撰寫php等動態程序來做實時更新。
  缺點3:只能緩存200狀態碼,因此后端返回301/302/404等狀態碼都不會緩存,假如恰好有一個訪問量很大的偽靜態鏈接被刪除,那就會不停穿透導致后端承載不小壓力。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莱州市| 西盟| 探索| 梁平县| 元朗区| 柯坪县| 玛曲县| 来安县| 来凤县| 大同县| 开远市| 靖远县| 桂林市| 姚安县| 华亭县| 达州市| 鄂州市| 青河县| 砚山县| 浏阳市| 秀山| 囊谦县| 襄垣县| 霍州市| 信宜市| 临夏市| 海安县| 赤壁市| 栾城县| 建宁县| 南召县| 竹溪县| 安吉县| 四子王旗| 鄂伦春自治旗| 广饶县| 云浮市| 静乐县| 句容市| 德州市| 句容市|