nginx缓存和flask_cache
生活随笔
收集整理的這篇文章主要介紹了
nginx缓存和flask_cache
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、使用flask_cache的緩存功能simple模式時,直接啟用可以使用,但是如果中間使用nginx代理時,就沒有效果了
2、那就直接使用nginx緩存機制
http://blog.csdn.net/ikmb/article/details/7098080
?
proxy_cache_methods GET HEAD;默認緩存GET HEAD,可以添加其他值PUT、POST等
?
nginx的Module--ngx_http_proxy_module官方說明:
http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.244788933.1568941527.1438257987#proxy_cache_methods
?
所以對緩存過期影響的優先級進行排序為:inactvie、源服務器端Expires、源服務器端max-age、proxy_cache_valid,http://blog.csdn.net/yangzhenzhen/article/details/11948777
?
proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:500m inactive=10d max_size=10g; proxy_temp_path /usr/local/nginx/cache/temp;proxy_cache_path ——定義在文件系統中希望存儲緩存的目錄。如果該目錄不存在,你可以用正確的權限和所有權創建它. proxy_temp_path ——設置在寫入proxy_temp_path時緩存臨文件數據的大小,在預防一個工作進程在傳遞文件時阻塞太長。? levels ——參數指定緩存將如何組織,Nginx將通過散列鍵(下方配置)的值來創建一個緩存鍵。我們選擇了上述的levels決定了單個字符目錄(這是散列值的最后一個字符)配有兩個字符的子目錄(下兩個字符取自散列值的末尾)將被創建。你通常不必對這個細節關注,但它可以幫助Nginx快速找到相關的值。level=1:2就是把最后一位數9拿出來建一個目錄,然后再把9前面的2位建一個目錄,最后把剛才得到的這個緩存文件放到9/ad目錄中。 同樣的方法推理,如果level=1:1,那么緩存文件的路徑就是/usr/local/nginx/cache/9/d/e0bd86606797639426a92306b1b98ad9 keys_zone ——參數定義緩存區域的名字,我們稱之為cache_one,這個名稱將在后面得配置中被引用。這也是我們定義多少元數據存儲的地方。 max_size ——參數設置實際緩存數據的最大尺寸。 inactive ——在proxy_cache_path配置項中進行配置,說明某個緩存在inactive指定的時間內如果不訪問,將會從緩存中刪除。
location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf|flv|html|htm)$ { proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect default; proxy_cache cache_one; proxy_cache_valid 200 304 12h; proxy_cache_valid any 10m; proxy_cache_key $host$uri$is_args$args; add_header Nginx-Cache "$upstream_cache_status"; expires 10d; }
proxy_set_header ——向upstream服務器同時發送http頭,頭信息中包括Host:主機、X-Real-IP:客戶端真實IP地址 proxy_cache ——上面定義的cache_one緩存區被用于這個位置。 Nginx會在這里檢查傳遞給后端有效的條目。 X-Proxy-Cache ——header的額外頭。我們設置這個頭部為$ upstream_cache_status變量的值。這個設置頭,使我們能夠看到,如果請求導致高速緩存命中HIT,高速緩存未命中MISSING,或者高速緩存被明確旁路。這是對于調試特別有價值,也對客戶端是有用的信息。 proxy_cache_key ——其會根據這個key映射成一個hash值,然后存入到本地文件中,如果你設置的proxy_cache_key為$host$uri 那么無論后面跟的什么參數,都會訪問一個文件,不會再生成新的文件。 而如果proxy_cache_key設置了$is_args$args,那么傳入的參數 localhost/index.php?a=4 與localhost/index.php?a=44將映射成兩個不同hash值的文件。 proxy_cache_valid ——配置nginx cache中的緩存文件的緩存時間,如果配置項為:proxy_cache_valid 200 304 2m;說明對于狀態為200和304的緩存文件的緩存時間是2分鐘,兩分鐘之后再訪問該緩存文件時,文件會過期,從而去源服務器重新取數據。any表示其他所有
總結
以上是生活随笔為你收集整理的nginx缓存和flask_cache的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北哥大话Yii2缓存机制 - File缓
- 下一篇: AE After Effect 如何分段