Nginx的缓存机制可以通过配置proxy_cache模块来实现。以下是一个基本的配置示例,展示了如何设置Nginx缓存:
定义缓存路径和参数:
在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 {
listen 80;
server_name example.com;
location / {
# 启用缓存
proxy_cache my_cache;
proxy_pass http://backend_server;
# 缓存控制
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
# 缓存键
proxy_cache_key "$scheme$proxy_host$request_uri";
# 缓存方法
proxy_cache_methods GET HEAD;
# 缓存头信息
add_header X-Proxy-Cache $upstream_cache_status;
}
}
}
详细解释:
proxy_cache_path:定义缓存路径和参数。
/var/cache/nginx:缓存文件的存储路径。levels=1:2:缓存目录的层级结构。keys_zone=my_cache:10m:定义缓存区域,my_cache是缓存区域的名称,10m是分配给该区域的内存大小。max_size=1g:缓存的最大总大小。inactive=60m:缓存项在未被访问后保持有效的时间。use_temp_path=off:是否使用临时路径存储缓存文件。proxy_cache:启用缓存,并指定缓存区域。
proxy_cache_valid:设置缓存的有效期。
200 302 10m:对于状态码为200和302的响应,缓存10分钟。404 1m:对于状态码为404的响应,缓存1分钟。proxy_cache_key:定义缓存键,用于唯一标识缓存项。
proxy_cache_methods:指定哪些HTTP方法会被缓存。
add_header X-Proxy-Cache $upstream_cache_status:添加一个自定义头部,显示缓存状态。
其他缓存相关指令:
proxy_cache_bypass:绕过缓存的条件。proxy_no_cache:不缓存某些响应。proxy_cache_revalidate:启用缓存重新验证。location / {
proxy_cache my_cache;
proxy_pass http://backend_server;
proxy_cache_bypass $http_pragma;
proxy_no_cache $http_pragma $http_authorization;
proxy_cache_revalidate on;
add_header X-Proxy-Cache $upstream_cache_status;
}
通过以上配置,你可以根据具体需求调整Nginx的缓存策略,以提高网站的性能和响应速度。