$host
# 代理缓存路径配置
proxy_cache_path /www/server/nginx/proxy_cache_dir levels=1:2 keys_zone=my_cache:10m inactive=60m use_temp_path=off max_size=1g;
server {
# ... 其他原有配置 ...
location / {
proxy_pass http://127.0.0.1:8080; # 与之前设置的目标URL一致
# 缓存配置
proxy_cache my_cache;
proxy_cache_key $scheme$proxy_host$request_uri;
proxy_cache_valid 200 304 10m;
proxy_cache_valid 301 302 1h;
proxy_cache_valid any 1m;
# 其他代理设置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 可选:添加缓存状态头信息
add_header X-Proxy-Cache $upstream_cache_status;
}
}
mkdir -p /www/server/nginx/proxy_cache_dir
chown -R www:www /www/server/nginx/proxy_cache_dir
chmod -R 755 /www/server/nginx/proxy_cache_dir
nginx -t && nginx -s reload
在location块中添加不需要缓存的规则:
# 不缓存后台管理页面
location /admin {
proxy_pass http://127.0.0.1:8080;
proxy_no_cache 1;
proxy_cache_bypass 1;
}
# 或根据Cookie排除
if ($http_cookie ~* "nocache") {
set $no_cache 1;
}
proxy_no_cache $no_cache;
proxy_cache_bypass $no_cache;
添加缓存清理接口(注意保护此接口):
location ~ /purge(/.*) {
allow 127.0.0.1;
allow 192.168.1.0/24;
deny all;
proxy_cache_purge my_cache $scheme$proxy_host$1;
}
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 1m;
proxy_busy_buffers_size 2m;
proxy_temp_file_write_size 2m;
proxy_max_temp_file_size 128m;
X-Proxy-Cache
字段,其值可能为:
缓存不生效:
cat /www/wwwlogs/nginx_error.log
缓存占用空间过大:
max_size
参数限制最大缓存大小inactive
时间使不活跃缓存自动清理动态内容被缓存:
通过以上步骤,您可以在宝塔面板中成功配置Nginx反向代理缓存,显著提升网站性能。