nginx 的 proxy_cache 緩存配置

 有個項目用到了百度語音接口,因爲功能比較小因此不想在服務端寫,打算直接用 js 調百度接口,而後用 nginx 代理解決跨域問題,那麼token怎麼辦 token確定是要緩存起來的 又不能緩存在瀏覽器裏,因而就試了試 nginx 的 proxy_cache:nginx

# proxy_cache_path 緩存的基本配置,須要放在 server 的外面,下面是配置項
# 緩存文件路徑:/data/nginx/cache(自定義)
# keys_zone 設置緩存名字和共享內存大小 one-cache:50m
# levels 設置緩存文件目錄層次;levels=1:2 表示兩級目錄
# inactive 刪除指定時間內未被訪問的緩存文件
# max_size 緩存硬盤空間最多爲 200m,若是緩存空間滿,默認覆蓋掉緩存時間最長的資源。

# 下面兩項是 nginx 啓動時加載緩存的參數
# loader_threshold 加載器每次迭代過程最多執行300毫秒
# loader_files 加載器每次迭代過程當中最多加載200個文件



proxy_cache_path /data/nginx/cache keys_zone=one-cache:50m levels=1:2 
                 inactive=7d loader_threshold=300 loader_files=200 max_size=200m;

#百度語音識別接口跨域代理
server {
    listen 80;
    server_name  vop-baidu.proxy.abc.com;


    add_header Access-Control-Allow-Origin *; 
    add_header Access-Control-Allow-Headers X-Requested-With,content-type;
    add_header Access-Control-Allow-Methods GET,POST; #,OPTIONS;
    add_header Access-Control-Max-Age 99999999;

    location / {
        proxy_pass  http://vop.baidu.com;

   }

   #百度語音 token
   location /token {
                
                proxy_cache one-cache; # 使用名稱爲one-cache的緩存(必須)
                proxy_cache_methods GET HEAD POST; #配置須要緩存的方法 默認GET|HEAD
                proxy_cache_valid 200 302 10d; # 對200和302狀態的請求緩存10天,any 表示全部狀態
                proxy_cache_key $uri; # 定義緩存key 默認是請求URL

                #****很重要*** 此項適用於配置要忽略的proxy_pass目標服務器的響應 header 項,
                #當目標服務器設置了 Cache-Control或Set-Cookie header等項時 則響應
                #不會被緩存或影響緩存策略,因此這裏選擇忽略
                proxy_ignore_headers Cache-Control Set-Cookie; 

                proxy_pass  https://openapi.baidu.com/oauth/2.0/token?xxxxxxx;
        }
}

 

配置好後,記得建立緩存文件目錄(/data/nginx/cache , cache 這一層 nginx 能夠自動建立),而後重啓 nginx ,請求相關連接檢查配置是否生效,生效則緩存目錄會出現緩存文件:api

 

還有一些高級配置項, proxy_no_cacheproxy_cache_bypass,proxy_cache_purge,proxy_pass_headers,proxy_hide_headers,proxy_cache_background_update。。。用到的時候在詳細研究吧。跨域

 

參考:瀏覽器

https://blog.csdn.net/dengjiexian123/article/details/53386586緩存

https://www.jianshu.com/p/625c2b15dad5服務器

https://www.nginx.com/blog/nginx-caching-guide/ide

相關文章
相關標籤/搜索