宝塔如何单独给一个网站设置nginx缓存目录,延长和持久化图床缓存

宝塔如何单独给一个网站设置nginx缓存目录,延长和持久化图床缓存

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

作者发现图床请求量和流量高,推测是缓存被清理导致。通过修改nginx配置文件,为每个站点设置单独的缓存空间,解决了问题。

🔎

延伸解读

缓存为何被清理:inactive 参数的作用

宝塔默认的 nginx 缓存配置中,inactive=1d 表示缓存条目在一天内未被访问就会被移除。对于图床这类冷门图片,可能几天甚至几周才被访问一次,因此缓存很容易被清理,导致每次访问都回源请求,增加流量和请求数。即使站点设置了很长的缓存时间,nginx 仍会依据 proxy_cache_path 中的 inactive 参数清理缓存。

为每个站点单独设置缓存空间

通过修改 /www/server/nginx/conf/proxy.conf 文件,可以新增一条 proxy_cache_path 指令,为特定站点指定独立的缓存目录、共享内存区名称、最大存储空间和 inactive 时间。例如将缓存目录设在网站目录下,并设置 inactive=1y 来延长冷门资源的缓存保留时间。这样能避免不同站点之间缓存策略的相互影响。

配置生效的关键步骤

新增 proxy_cache_path 后,需要修改对应站点的 nginx 配置文件,将 proxy_cache 的值改为新定义的共享内存区名称(如 cache_p),确保站点使用新的缓存规则。最后重启或重载 nginx 使配置生效。完成后,缓存文件会存储到指定目录,不再被默认规则错误删除。

❓

Q&A

如何为网站设置单独的nginx缓存目录?

可以通过修改nginx配置文件,使用proxy_cache_path指令为每个站点设置单独的缓存空间。

nginx的缓存清理机制是怎样的?

nginx的缓存会根据配置的inactive时间和最大存储空间进行清理,未访问的缓存条目会在设定时间后被移除。

为什么我的图床请求量高?

请求量高可能是因为缓存被清理,导致冷门图片每次访问都需要重新请求。

如何延长nginx缓存的存储时间?

可以在proxy_cache_path中设置inactive参数,指定缓存条目在多长时间未被访问后过期,增加存储时间。

宝塔默认的nginx缓存配置有哪些?

宝塔默认的nginx缓存配置包括缓存路径、存储最大值、存储时间等,通常设置为inactive=1d和max_size=5g。

如何确保nginx缓存文件不被错误删除?

通过为每个站点设置单独的缓存目录,并合理配置缓存参数,可以避免缓存文件被错误删除。

🏷️

标签

➡️

继续阅读