NginxWeb缓存配置详细说明以及案例
2025-03-09
6
Nginx Web缓存配置可以通过proxy_cache
模块实现,用于缓存后端服务器的响应内容,减少后端服务器的负载并提高响应速度。以下是详细配置说明及案例:
1. 配置缓存路径
首先,需要在Nginx配置文件中定义缓存路径和缓存区域。
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 { listen 80; server_name example.com; location / { proxy_cache my_cache; # 使用定义的缓存区域 proxy_pass http://backend_server; # 后端服务器地址 proxy_cache_valid 200 302 10m; # 缓存200和302状态码的响应10分钟 proxy_cache_valid 404 1m; # 缓存404状态码的响应1分钟 proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; # 在错误时使用过期的缓存 add_header X-Cache-Status $upstream_cache_status; # 添加缓存状态头信息 } } }
2. 配置缓存键
缓存键用于区分不同的缓存内容。默认情况下,Nginx使用完整的URL作为缓存键,但可以通过proxy_cache_key
指令自定义。
location / { proxy_cache my_cache; proxy_pass http://backend_server; proxy_cache_key "$scheme$proxy_host$request_uri"; # 自定义缓存键 proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; add_header X-Cache-Status $upstream_cache_status; }
3. 配置缓存绕过
在某些情况下,可能需要绕过缓存,直接请求后端服务器。可以通过proxy_cache_bypass
和proxy_no_cache
指令实现。
location / { proxy_cache my_cache; proxy_pass http://backend_server; proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment; # 当条件满足时绕过缓存 proxy_no_cache $cookie_nocache $arg_nocache$arg_comment; # 当条件满足时不缓存 proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; add_header X-Cache-Status $upstream_cache_status; }
4. 配置缓存清理
Nginx本身不提供直接的缓存清理功能,但可以通过第三方模块(如ngx_cache_purge
)或手动删除缓存文件来实现。
location ~ /purge(/.*) { proxy_cache_purge my_cache "$scheme$proxy_host$1"; # 清理指定URL的缓存 }
5. 完整案例
以下是一个完整的Nginx Web缓存配置案例:
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 { listen 80; server_name example.com; location / { proxy_cache my_cache; proxy_pass http://backend_server; proxy_cache_key "$scheme$proxy_host$request_uri"; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; add_header X-Cache-Status $upstream_cache_status; } location ~ /purge(/.*) { proxy_cache_purge my_cache "$scheme$proxy_host$1"; } } }
6. 注意事项
确保缓存路径
/var/cache/nginx
存在且Nginx有写入权限。根据实际需求调整缓存大小、缓存时间等参数。
使用
add_header X-Cache-Status $upstream_cache_status;
可以方便地查看缓存命中情况。
通过以上配置,Nginx可以有效地缓存Web内容,提升网站性能。
本篇文章内容来源于:NginxWeb缓存配置详细说明以及案例
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。