proxy_cache

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

猜你喜欢

转载自blog.csdn.net/kq1983/article/details/114049589