nginx页面缓存怎么配置(nginx缓存功能的作用)

nginx页面缓存怎么配置(nginx缓存功能的作用)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-01-26 14:51:35
文章简介

指令指定缓存的路径和一些其他参数,缓存的数据存储在文件中,并且使用代理url的哈希值作为关键字与文件名。levels参数指定缓存的子目录数,例如:proxy_cache_path/data/ng

2025阿里云双十一服务器活动

指令指定缓存的路径和一些其他参数,缓存的数据存储在文件中,并且使用代理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页面缓存怎么配置,nginx缓存功能的作用

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页面缓存怎么配置的详细内容,更多请关注主机测评网其它相关文章!

    标签:
    云服务器ECS怎么拨号(云服务器ecs怎么用)
    « 上一篇
    返回列表
    下一篇 »

    如本文对您有帮助,就请抽根烟吧!