# 九.缓存

nginx 代理缓存

http{
    proxy_cache_path /data/nginx/tmp-test levels=1:2 keys_zone=tmp-test:100m inactive=7d max_size=1000g;
}
1
2
3
  • proxy_cache_path 缓存文件路径

  • levels 设置缓存文件目录层次;levels=1:2 表示两级目录

  • keys_zone 设置缓存名字和共享内存大小

  • inactive 在指定时间内没人访问则被删除

  • max_size 最大缓存空间,如果缓存空间满,默认覆盖掉缓存时间最长的资源。

    location /tmp-test/ {
      proxy_cache tmp-test;
      proxy_cache_valid  200 206 304 301 302 10d;
      proxy_cache_key $uri;
      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_pass http://127.0.0.1:8081/media_store.php/tmp-test/;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
  • proxy_cache tmp-test 使用名为 tmp-test 的对应缓存配置

  • proxy_cache_valid 200 206 304 301 302 10d; 对 httpcode 为 200…的缓存 10 天

  • proxy_cache_key $uri 定义缓存唯一 key,通过唯一 key 来进行 hash 存取

  • proxy_set_header 自定义 http header 头,用于发送给后端真实服务器。

  • proxy_pass 指代理后转发的路径,注意是否需要最后的