proxy_cache_key
proxy_cache_key $scheme$proxy_host$request_uri;
proxy_cache_key "$host$request_uri $cookie_user";
proxy_cache_key $scheme$proxy_host$uri$is_args$args;
proxy_cache_methods
Syntax: proxy_cache_methods GET | HEAD | POST ...;
Default:
proxy_cache_methods GET HEAD;
proxy_cache_path
这个标签在http标签中
Syntax: proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [min_free=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
配置多个
# 规则key=jycscache 内存缓存空间大小为10MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为200m
proxy_cache_path /nginxcache/jycs keys_zone=jycscache:10m inactive=1d max_size=200m;
proxy_cache_path /nginxcache/notice keys_zone=noticecache:10m inactive=1d max_size=200m;
proxy_cache_valid
Syntax: proxy_cache_valid [code ...] time;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
set 10 minutes of caching for responses with codes 200 and 302 and 1 minute for responses with code 404.
In addition, the any
parameter can be specified to cache any responses:
proxy_cache_min_uses
# 设置请求发生多少次后,请求(响应内容)被缓存
syntax:
proxy_cache_min_uses number;
default:
proxy_cache_min_uses 1;
例子
location = /mycontext/notice.do {
set $c_uri $args;
if ($c_uri ~ (.*)(?:&|^)t=[^&]*(.*)) {
set $c_uri $1$2;
}
proxy_cache noticecache;
proxy_cache_valid 200 302 30m;
# proxy_cache_methods POST;
# proxy_cache_valid any 0s;
# proxy_cache_key "$request_uri|$request_body";
proxy_cache_key "$uri|$c_uri";
# proxy_cache_key "$request_uri|$args";
# proxy_cache_key "$uri|$request_body";
#proxy_ignore_headers Cache-Control Expires;
# proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://hbwx_read;
}
参考文档: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream