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缓存策略时,请务必仔细阅读相关文档,并根据实际情况进行测试和验证。