image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
proxy_cache_path /etc/nginx/conf.d/cachepath levels=1:2:2 keys_zone=two:10m loader_threshold=300 loader_files=200 max_size=200m inactive=5m;
upstream cacheups {
server 127.0.0.1:8080;
}
server {
server_name cache.zhangdazhi.com;
location / {
proxy_pass http://cacheups;
proxy_cache two;
proxy_cache_valid 200 10m; #状态码为200缓存10分钟
add_header X-cache-Status $upstream_cache_status; #添加响应头部,用于告诉客户端是否命中缓存
}
}
定义上游服务
server {
listen 8080;
location / {
# return 200 "server2\n";
root /data/nginx/html;
add_header Cache-Control 'max-age=3,stale-while-revalidate=3'; #添加此头部max-age=<seconds>
设置缓存存储的最大周期,超过这个时间缓存被认为过期(单位秒)。与Expires相反,时间是相对于请求的时间。max-age会覆盖掉Expires。stale-while-revalidate=<seconds>
表明客户端愿意接受陈旧的响应,同时在后台异步检查新的响应。秒值指示客户愿意接受陈旧响应的时间长度。
# add_header Vary *; #上游服务添加此头部,则不缓存,即使反向代理定义了缓存
# add_header X-Accel-Expires 3; #反向代理定义的缓存时间为10分钟,在上游服务中添加响应头部定义缓存时间为3秒,则过3秒就会变为过期的缓存
}
}
网友评论