Nginx快取問題

2021-09-17 04:04:25 字數 694 閱讀 3989

nginx在後續版本中加入了proxy_cache實現對後端伺服器請求的快取,並賦予了很多強大的配置,在官方文件及各類技術支援文件中都能找到,本文不再贅述環境搭配及相關問題。主要討論配置成功後為何nginx伺服器沒有生成快取檔案,及無法命中快取的問題。

產生這個問題的原因簡單點來說是因為後端伺服器的expires和cache-control導致的。解決辦法有粗暴與深入了解其原理兩種。

第一種:強制快取,在nginx配置中的http體裡加上

proxy_ignore_headers x-accel-expires expires cache-control set-cookie;

此法可以不用修改後台服務端配置,對希望快速配置生效的同學有效。

具體參考博文

此文描述其機器相當清楚,強烈各位研究。

在配置的location塊中新增快取的http方法,示例如下:

proxy_cache_methods get head post; 

由於大部分使用post請求的都會用到requestbody。而nginx快取是以key、value儲存的,預設的key是uri,所以需要修改nginx的快取key來達到快取目的。新增下述示例:

proxy_cache_key "$request_uri|$request_body"; 

注意:如果請求頭(oauth協議)也會影響請求的,也需要修改key的規則,具體參考官方文件。

nginx快取引發的問題

請求為f.chinasoft.com file f.chinasoft.com 網域名稱指向slb 3.3.3.3 業務方式 ios slb 3.3.3.3 ecs集群 每一台ecs都有乙個nginxweb伺服器 mysql 從mysql中獲取的資料為資料庫的ip位址,再次通過該ip 假設為1.1....

nginx 不生成快取檔案問題

nginx 反向 不生成快取檔案問題 1 後台是否設定了set cookie操作。如果後台設定了cookie,需要強制進行nginx頁面快取 proxy hide header set cookie proxy ignore headers set cookie 2.後台是否設定了response ...

Nginx 快取控制

nginx 有好幾個引數控制快取,以nginx快取檔案作為例子。第一,快取池 proxy cache path var cache nginx proxy cache levels 1 2 keys zone static 50m max size 10g inactive 3d 這個引數控制快取池...