linux

nginx配置中如何设置缓存策略

小樊
61
2025-08-28 01:51:26
栏目: 编程语言

在Nginx配置中设置缓存策略,主要涉及到以下几个指令:proxy_cache_pathproxy_cache_keyproxy_cache_validproxy_cache_bypassproxy_no_cache。以下是一个简单的示例,展示了如何在Nginx配置文件中设置缓存策略:

  1. 打开Nginx配置文件,通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/your_domain.conf

  2. httpserver 块中,使用 proxy_cache_path 指令定义缓存路径和参数。例如:

http {
    ...
    proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
    ...
}

这里,我们定义了一个名为 my_cache 的缓存区域,最大容量为1GB,缓存文件的最大闲置时间为60分钟。

  1. serverlocation 块中,使用 proxy_cache_key 指令自定义缓存键。例如:
server {
    ...
    location / {
        ...
        proxy_cache_key "$scheme$proxy_host$request_uri";
        ...
    }
}

这里,我们使用协议、主机名和请求URI组合作为缓存键。

  1. 使用 proxy_cache_valid 指令设置缓存有效时间。例如:
server {
    ...
    location / {
        ...
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404 1m;
        ...
    }
}

这里,我们设置了200和302状态码的响应缓存时间为10分钟,404状态码的响应缓存时间为1分钟。

  1. 使用 proxy_cache_bypassproxy_no_cache 指令控制哪些请求不使用缓存。例如:
server {
    ...
    location / {
        ...
        proxy_cache_bypass $http_cache_control;
        proxy_no_cache $http_pragma;
        ...
    }
}

这里,我们根据HTTP头信息中的 Cache-ControlPragma 字段来决定是否跳过缓存。

  1. 保存配置文件并重启Nginx服务以应用更改:
sudo nginx -t      # 检查配置文件语法是否正确
sudo nginx -s reload  # 重新加载配置文件

以上示例展示了如何在Nginx中设置基本的缓存策略。您可以根据实际需求调整这些指令的值。

0
看了该问题的人还看了