Nginx proxy_cache 緩存靜態文件


原文鏈接:https://blog.csdn.net/bjgaocp/article/details/87867521

創建緩存目錄
mkdir /tmp/ngx_cache

添加下面語句在http{ }標簽中
proxy_temp_path /data/ngx_cache/proxy_temp_dir;
proxy_cache_path /tmp/ngx_cache/proxy_cache_dir levels=1:2 keys_zone=filecache:30m inactive=1d max_size=100m;
定義/tmp/ngx_cache為緩存路徑 定義key值名稱為filecache存儲key hash內存空間30m緩存失效時間1天,最大磁盤存儲單文件100m
levels=1:2 的意義:緩存文件存放的位置 以緩存文件最后一位定義一級目錄,倒數第3位和倒數第2位定義二級目錄,多目錄的好處是加速查詢
如何確定緩存文件的命名:緩存文件的命名規則與proxy_cache_key 有關,proxy_cache_key "$host$request_uri";
echo -n www.exaple.com/index.html | md5sum

 

 


proxy_temp_path 緩存臨時目錄
proxy_cache_path 真正緩存存放目錄
兩個目錄必須放在同一分區

upstream webserver {
server 10.125.192.4:8080;
}
server {
listen 80;
location / {
proxy_pass http://webserver;
proxy_next_upstream http_502 http_504 error timeout invalid_header; #出錯嘗試負載均衡中另外一個節點
proxy_cache filecache; # 使用緩存區 緩存鍵空間名要和proxy_cache_path 對應上
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_cache_valid 200 304 12h; #指定狀態碼的緩存時間
proxy_cache_valid 301 302 1m;
proxy_cache_valid any 1m;
proxy_cache_key $host$uri$is_args$args; #指定鍵key的格式
proxy_set_header Host $host; #傳遞主機名給后端節點
proxy_set_header X-Forwarded-For $remote_addr; #傳遞客戶端IP給后端節點
add_header X-Cache-Status “$upstream_cache_status from $server_addr”; #自定義頭部信息 crul -I 可以查看緩存命中狀態,哪個服務器響應的。
expires 1d; #過期時間
}
}

重啟nginx 觀察進程 會發現nginx多了兩個cache的進程
/etc/init.d/nginx -s reload
pa aux |grep nginx


讓/tmp目錄使用tmpfs文件系統來加快訪問效率(划分內存作為緩存)
mkdir /tmp/ngx_cache
mount -t tmpfs -o size=16m tmpfs /tmp/ngx_cache
vim /etc/fstab #加入下行掛載信息
#tmpfs /tmp/ngx_cache tmpfs rw,relatime,size=16m 0 0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM