在Nginx中,可以通过配置缓存策略来优化性能和减轻后端服务器的压力。以下是一些常见的缓存策略设置:
启用缓存:
在Nginx配置文件中,使用proxy_cache_path
指令定义缓存路径和相关参数。
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
解释:
/var/cache/nginx
:缓存文件的存储路径。levels=1:2
:缓存目录的层级结构。keys_zone=my_cache:10m
:定义一个名为my_cache
的缓存区域,大小为10MB。max_size=1g
:缓存的最大总大小为1GB。inactive=60m
:缓存项在60分钟后失效。use_temp_path=off
:不使用临时路径。在server或location块中使用缓存:
在需要缓存的server
或location
块中,使用proxy_cache
指令启用缓存,并使用proxy_cache_valid
指令设置缓存有效期。
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend_server;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
}
解释:
proxy_cache my_cache
:启用名为my_cache
的缓存区域。proxy_cache_valid 200 302 10m
:对于状态码为200和302的响应,缓存10分钟。proxy_cache_valid 404 1m
:对于状态码为404的响应,缓存1分钟。缓存控制头:
可以通过add_header
指令添加缓存控制头,以更精细地控制缓存行为。
location / {
proxy_pass http://backend_server;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header Cache-Control "public, max-age=300";
}
解释:
add_header Cache-Control "public, max-age=300"
:添加Cache-Control
头,设置缓存时间为300秒(5分钟)。缓存键:
可以通过proxy_cache_key
指令自定义缓存键,以便更精确地控制缓存。
location / {
proxy_pass http://backend_server;
proxy_cache my_cache;
proxy_cache_key "$scheme$proxy_host$request_uri";
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
解释:
proxy_cache_key "$scheme$proxy_host$request_uri"
:自定义缓存键,包括协议、主机名和请求URI。通过以上配置,可以在Nginx中实现灵活且高效的缓存策略。根据具体需求调整缓存路径、大小、有效期等参数,以达到最佳性能。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: linux怎么创建一个新用户