国产探花免费观看_亚洲丰满少妇自慰呻吟_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//m.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//m.survivalescaperooms.com/;  }  }

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静宁县| 江达县| 安徽省| 寿阳县| 武隆县| 武义县| 泰州市| 九龙城区| 乌什县| 孟村| 南丰县| 儋州市| 昆明市| 岢岚县| 嵊州市| 山东省| 扎兰屯市| 林西县| 桐乡市| 德格县| 临清市| 蓬溪县| 德兴市| 台湾省| 怀远县| 南昌县| 哈尔滨市| 巫山县| 类乌齐县| 东至县| 稻城县| 贵港市| 呈贡县| 城固县| 石棉县| 黄浦区| 景德镇市| 当雄县| 塔城市| 宁波市| 莱西市|