查无此人 大佬有话说 :
proxy_cache 相关参数的设置实例
如果网站采用了 ngx_http_proxy_module ,那么显然, 缓存是非常有必要的。特别是前端放在国外的网站。
比如源服务器在中国大陆境内,前端在洛杉矶,采用了缓存以后,多数动态文件可以只通过前端服务器获取,节省至少220毫秒的延迟。
而且对服务器的抗打击能力也有所提高。
以下是实例和参数说明:
proxy_cache_path /var/cache/nginx/uselys.cn levels=1:2 use_temp_path=off keys_zone=uselys.cn:64k inactive=1h max_size=128m;
// levels=1:2 要说一下, 目录结构是这样的:/c/29/ 。如果是levels=1:3,目录结构是这样的:/c/293/ 。后面的数字越大,生成的子目录越多。除非你的网站非常庞大,一般不建议下级目录太多。inactive=1h 意思是1小时后过期,不一定删掉。
server {
listen 80;
server_namewww.uselys.cn;
location / {
proxy_pass http://uselys.cn:12345/;
proxy_redirect http://uselys.cn:12345/ /;
proxy_set_header Host $host;
proxy_cache uselys.cn; // 跟proxy_cache_path里的 keys_zone对应。
proxy_cache_background_update on; // 如果前端一个请求访问到了一个过期的缓存文件,则允许后台的子请求更新这个过期的缓存。
proxy_cache_use_stale updating; //定义过期的缓存在什么条件设可以被使用,updating配合上面的 proxy_cache_background_update。其他的参见官方说明。
proxy_cache_convert_head on; // 把HEAD请求方式转换成GET。如果关闭这个功能,那么proxy_cache_key里面应当包含 $request_method。默认这个开关是打开的。
proxy_cache_lock on; //同一时间只允许一个请求更新缓存,其他请求要么等待,要么超时后直接访问源文件。
proxy_cache_lock_age 5s; // 如果一个请求在5秒内没完成缓存更新,那么其他后面的请求就直接访问源文件。
proxy_cache_lock_timeout 5s; // 如果一个请求在5秒内没能更新缓存,那么就放弃更新,直接访问源文件,不会保存缓存文件。
proxy_cache_max_range_offset 10000; //设置缓存的字节数数,超过这个大小的文件不缓存
proxy_cache_methods GET; // 如果数据是以GET方式传输的就缓存,其他的不缓存
proxy_cache_min_uses 1; // 被多少个请求访问后才缓存,(判定流量,流量大的页面就缓存一下,流量小的就不用缓存)
proxy_cache_valid200 304 301 30m; // 设置那些响应会被缓存。这条是必须的
proxy_cache_valid500 502 503 504 0s;
proxy_cache_valid any 7d; //缓存文件有效时间
expires 5m; // 本地浏览器的缓存时间
proxy_cache_bypass $cookie_8Foj_2132_auth; // 符合这个cookie名称的都忽略缓存,直接接访问源服务器。官方文档中的$cookie_user 是一个例子,user部分是每个网站不一样的,这一点要注意,不是直接使用的。
# proxy_cache_key "$host$request_uri $cookie_user"; // 这个参数只是设置缓存文件的关键词结构,不是定义缓存什么类型的文件!它保存在每个缓存文件里。
# proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment; // 这里的_nocache _comment跟上面的 _user 一样,不是直接使用的,所以这里注释掉了。
# proxy_cache_bypass $http_pragma $http_authorization; // 跟上面同理。
proxy_no_cache $cookie_8Foj_2132_auth; // 符合这个cookie名称的都不生成缓存
}
}
新站请大家支持:https://www.uselys.cn/thread-18-1-1.html
enjoyit 大佬有话说 :
不错,很好的文档,怎么刷新缓存?