NginX设置缓存功能 版本:Nginx-1.8.1版本; 操作系统:适用于所有Windows系统; 首先介绍其功能:当用户第一次访问页面时,由于 nginx的缓存中没有,会访问upstream 服
NginX设置缓存功能
版本:Nginx-1.8.1版本;
操作系统:适用于所有Windows系统;
首先介绍其功能:当用户第一次访问页面时,由于 nginx的缓存中没有,会访问upstream 服务器相应的文件,第二次再访问的时候,由于已经缓存在了nginx的proxy_cache中,Nginx当接收到请求之后就不会将请求传送到 upstream 服务器里面了。
1. 主要效果,明显能够看出访问时间的优化。
本地做了缓存加静态文件分离后 本地没做缓存只做了静态分离
服务器没做缓存没做静态分离
PS:当然也有可能是因为网络延时的原因,因为我测试的是访问本地的连接,服务器上的部署尚未做缓存与静态分离等等。如果你觉得有点鸡肋的话就不必要看下去辣~
1).先来看测试的访问时间:用到 FireFox 浏览器
1).在本地测试,配置了 Nginx缓存后;第一次访问所需要的总时间:20~30ms 毫秒
2). 按 F5 刷新后,可以明显的看出来,刷新不再直接访问服务器,而是在缓存中直接读取。访问时间为 0~5ms 毫秒
3).在本地文件夹中能看到缓存文件
2).在云平台上部署的项目访问时间
1).无论刷新多少次,访问的时间总是在20~30ms 毫秒之间。虽说问题不是很严重,但当用户量大并发访问的时候就能明显体现出来
2.实现部署配置
Nginx 文件所在位置:E:/ServerTool/nginx-1.8.1
打开 E:/ServerTool/nginx-1.8.1/conf/ nginx.conf 文件,进行编辑
1).添加缓存设置如下:
PS:注意该语句只能在 Http 节点下设置!而且路径要设置对,否则 Nginx 会报错无法启动其错误日志信息如下:
2). 随后在相应需要配置添加参数调用缓存
PS:该参数只能在 location 节点下设置!参数都有其解析,很简单就能完成所需要的配置
3).启动测试
不报错,检测任务管理器是否成功开启
启动浏览器访问改项目的站点,利用浏览器自带的F12去查看
显示是:HIT表示成功开启;MISS则是没有缓存文件
3.给出完整的缓存的配置信息
# 缓存目录地址不能定义在server块内,必须定义在http快中 配置一个cache空间proxy_cache_path /ServerTool/nginx-1.8.1/cache levels=1:2 keys_zone=SLoan:500m inactive=10d max_size=10g;proxy_temp_path /ServerTool/nginx-1.8.1/cache/temp;# 缓存# 调用缓存 SLoan为缓存名称proxy_cache SLoan;# 添加服务器地址到报文头部add_header X_Via $server_addr;# 添加缓存状态到报文头部add_header X-Cache $upstream_cache_status;proxy_cache_key $host$uri$is_args$args;# 定义缓存失效时间,200 是状态码,即缓存状态码是200请求成功的数据,10M是10分钟,即缓存的数据超时时间为10分钟,10分钟后过期,不定义则缓存不生效proxy_cache_valid 200 302 3h; #200 302状态码保存3小时proxy_cache_valid 301 3h; #状态保存时间为3小时proxy_cache_valid any 1m; #其他保存时间为 1分钟
至此,所有配置均已完成,当然以上仅为基本配置方式~
由于我的nginx.conf还有很多杂七杂八的配合就不完全放出来了~注意好摆放的位置逐步配置则可!