温馨提示×

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

小樊
48
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