指令指定缓存的路径和一些其他参数,缓存的数据存储在文件中,并且使用代理url的哈希值作为关键字与文件名。levels参数指定缓存的子目录数,例如:
proxy_cache_path/data/nginx/cachelevels=1:2keys_zone=one:10m;
文件名类似于:
/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
levels指定目录结构,可以使用任意的1位或2位数字作为目录结构,如x,x:x,或x:x:x例如:“2”,“2:2”,“1:1:2“,但是最多只能是三级目录。
所有活动的key和元数据存储在共享的内存池中,这个区域用keys_zone参数指定。one指的是共享池的名称,10m指的是共享池的大小。
注意每一个定义的内存池必须是不重复的路径,例如:
proxy_cache_path/data/nginx/cache/onelevels=1keys_zone=one:10m;
proxy_cache_path/data/nginx/cache/twolevels=2:2keys_zone=two:100m;
proxy_cache_path/data/nginx/cache/threelevels=1:1:2keys_zone=three:1000m;
为不同的应答设置不同的缓存时间,例如:
proxy_cache_valid20030210m;
proxy_cache_valid4041m;
为应答代码为200和302的设置缓存时间为10分钟,404代码缓存1分钟。
proxy_cache_valid5m;
那么只对代码为200,301和302的应答进行缓存。
同样可以使用any参数任何应答。
proxy_cache_valid20030210m;
proxy_cache_validany1m;
2.定义一个简单nginx缓存服务器
[root@nginx~]#vim/etc/nginx/nginx.conf
proxy_cache_path/data/nginx/cache/webserverlevels=1:2keys_zone=webserver:20mmax_size=1g;
#access_loglogs/host.access.logmain;
proxy_passhttp://webservers;
proxy_set_headerx-real-ip$remote_addr;

nginx:theconfigurationfile/etc/nginx/nginx.confsyntaxisok
nginx:configurationfile/etc/nginx/nginx.conftestissuccessful
重新载入nginx:[确定]
5.下面我们来测试一下(谷歌浏览器)
注,大家用谷歌浏览器测试的时候,可以按f12调用开发工具,选择network选项,我们可以看到,responseheaders,在这里我们可以看到,我们请求的是否是缓存,但现在还看不到,下面我们来配置一下,再来测试。
服务器地址,在完成一次系统调用后可以确定这个值,如果要绕开系统调用,则必须在listen中指定地址并且使用bind参数。
expired-expired。请求被传送到后端。
updating-expired。因为proxy/fastcgi_cache_use_stale正处于更新中,所以将使用旧版本的响应。
stale-expired。当使用proxy/fastcgi_cache_use_stale时,后端会接收到过期的响应。
[root@nginx~]#vim/etc/nginx/nginx.conf
proxy_cache_path/data/nginx/cache/webserverlevels=1:2keys_zone=webserver:20mmax_size=1g;
#access_loglogs/host.access.logmain;
add_headerx-via$server_addr;
add_headerx-cache$upstream_cache_status;
proxy_passhttp://webservers;
proxy_set_headerx-real-ip$remote_addr;
}
7.重新加载一下配置文件
[root@nginx~]#servicenginxreload
nginx:theconfigurationfile/etc/nginx/nginx.confsyntaxisok
nginx:configurationfile/etc/nginx/nginx.conftestissuccessful
重新载入nginx:[确定]
8.测试一下
注,从图中我们可以看到,我们访问的服务器是192.168.18.208,缓存命中。大家可以看到是不是很直观啊。下面我们看一下缓存目录。
[root@nginx~]#cd/data/nginx/cache/webserver/f/63/
681ad4c77694b65d61c9985553a2763f
注,缓存目录里确实有缓存文件。
以上就是nginx页面缓存怎么配置的详细内容,更多请关注主机测评网其它相关文章!
本文来源:虚拟主机--nginx页面缓存怎么配置(nginx缓存功能的作用)
本文地址:https://www.idcbaba.com/zhuji/2644.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



