Nginx的缓存策略可以通过配置文件中的proxy_cache指令来实现。以下是一些基本的缓存策略设置步骤:
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分钟。
location块中,使用proxy_cache指令启用缓存,并使用proxy_cache_valid指令设置缓存时间。例如:location / {
# ...
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
# ...
}
add_header指令添加缓存控制相关的HTTP头信息。例如,可以添加Cache-Control头信息来控制缓存行为:location / {
# ...
add_header Cache-Control "public, max-age=3600";
# ...
}
在这个例子中,Cache-Control头信息设置为public,表示响应可以被任何缓存存储,并且最大缓存时间为3600秒(即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缓存策略时,请务必仔细阅读相关文档,并根据实际情况进行测试和验证。