amh7.0反向代理缓存失效问题详解
使用AMH7.0进行反向代理时,经常遇到页面更新延迟问题。即使将缓存过期时间设置为1小时,实际缓存时间却可能长达12小时甚至更久。本文将分析此问题的原因并提供解决方案。
问题: 在AMH7.0中配置反向代理并设置1小时缓存过期时间后,页面内容更新仍然延迟,沿用默认的12小时缓存时间。
原因及解决方案: Nginx反向代理的缓存有效期并非完全由Nginx自身设置的过期时间参数决定。它还受源站服务器返回的HTTP响应头中的Expires字段影响。如果Expires字段指定的过期时间长于Nginx设置的过期时间,Nginx的缓存设置将失效,页面继续使用旧缓存。
因此,解决此问题关键在于调整Nginx的缓存设置,优先考虑缓存文件失效时间(inactive)参数。此参数定义缓存文件在最后一次访问后,多久自动删除。通过设置较短的失效时间,即使源站服务器返回的Expires字段过期时间较长,也能确保缓存文件在指定时间后被删除,从而保证页面及时更新。用户下次访问时,Nginx将重新从源站服务器获取最新内容。此参数的优先级高于缓存有效时间参数,能有效解决页面更新延迟问题。