debian

Nginx缓存策略如何设置

小樊
40
2025-04-15 15:39:08
栏目: 编程语言

Nginx的缓存策略可以通过配置文件中的proxy_cache指令来实现。以下是一些基本的缓存策略设置步骤:

  1. 定义缓存路径和参数: 在Nginx配置文件的http块中,定义缓存路径和缓存参数。例如:
http {
    # 缓存路径
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

    server {
        # ...
        location / {
            # ...
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            # ...
        }
    }
}

在这个例子中,proxy_cache_path指令定义了缓存路径/var/cache/nginx,缓存级别为1:2(表示一级目录和二级目录),缓存区域名为my_cache,大小为10MB,最大缓存大小为1GB,未命中缓存的文件在60分钟后被删除,不使用临时路径。

proxy_cache_valid指令定义了不同HTTP状态码的缓存时间。例如,状态码200和302的响应将被缓存10分钟,状态码404的响应将被缓存1分钟。

  1. 启用缓存: 在需要缓存的location块中,使用proxy_cache指令启用缓存,并使用proxy_cache_valid指令设置缓存时间。例如:
location / {
    # ...
    proxy_cache my_cache;
    proxy_cache_valid 200 302 10m;
    proxy_cache_valid 404 1m;
    # ...
}
  1. 缓存控制: 可以通过add_header指令添加缓存控制相关的HTTP头信息。例如,可以添加Cache-Control头信息来控制缓存行为:
location / {
    # ...
    add_header Cache-Control "public, max-age=3600";
    # ...
}

在这个例子中,Cache-Control头信息设置为public,表示响应可以被任何缓存存储,并且最大缓存时间为3600秒(即1小时)。

  1. 缓存失效: 当需要使缓存失效时,可以使用proxy_cache_purge模块。首先需要安装该模块,然后在配置文件中添加相应的指令。例如:
location /purge {
    allow 127.0.0.1; # 允许本地访问
    deny all; # 拒绝其他所有IP访问
    proxy_cache_purge my_cache $scheme://$host$request_uri;
}

在这个例子中,proxy_cache_purge指令用于清除名为my_cache的缓存中与当前请求URI匹配的缓存项。$scheme$host$request_uri是Nginx变量,分别表示协议、主机名和请求URI。

请注意,以上示例仅用于说明目的,并且可能需要根据实际需求进行调整。在配置Nginx缓存策略时,请务必仔细阅读相关文档,并根据实际情况进行测试和验证。

0
看了该问题的人还看了