在Nginx配置中设置缓存策略,主要涉及到以下几个指令:proxy_cache_path、proxy_cache_key、proxy_cache_valid、proxy_cache_bypass 和 proxy_no_cache。以下是一个简单的示例,展示了如何在Nginx配置文件中设置缓存策略:
打开Nginx配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/your_domain.conf。
在 http 或 server 块中,使用 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分钟。
server 或 location 块中,使用 proxy_cache_key 指令自定义缓存键。例如:server { ... location / { ... proxy_cache_key "$scheme$proxy_host$request_uri"; ... } } 这里,我们使用协议、主机名和请求URI组合作为缓存键。
proxy_cache_valid 指令设置缓存有效时间。例如:server { ... location / { ... proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; ... } } 这里,我们设置了200和302状态码的响应缓存时间为10分钟,404状态码的响应缓存时间为1分钟。
proxy_cache_bypass 和 proxy_no_cache 指令控制哪些请求不使用缓存。例如:server { ... location / { ... proxy_cache_bypass $http_cache_control; proxy_no_cache $http_pragma; ... } } 这里,我们根据HTTP头信息中的 Cache-Control 和 Pragma 字段来决定是否跳过缓存。
sudo nginx -t # 检查配置文件语法是否正确 sudo nginx -s reload # 重新加载配置文件 以上示例展示了如何在Nginx中设置基本的缓存策略。您可以根据实际需求调整这些指令的值。