如何配置MapProxy文件缓存生存时间?默认过期机制是什么?
MapProxy 文件缓存的过期机制与配置说明
默认行为
- MapProxy的文件缓存默认是无限期保留的,不会自动过期,也不会主动遵循上游服务的缓存控制头,除非你手动配置相关规则。
可配置的过期机制
1. 参考上游服务的缓存控制头
可以在缓存源的HTTP配置中开启对上游缓存头的支持,让MapProxy根据上游返回的Cache-Control等头信息判断缓存有效期。示例配置:
sources: - type: http url: http://your-upstream-wms.com/service http: cache_control: max_age: 86400 # 可选,强制覆盖上游的max_age,单位为秒 s_max_age: 43200 # 可选,针对共享缓存的有效期
开启后,MapProxy会优先使用上游返回的缓存规则,若配置了max_age则会覆盖上游值。
2. 强制设置固定过期时间
直接在缓存配置中指定固定的过期时长,所有缓存文件到达该时间后即标记为过期。示例配置:
caches: my_file_cache: type: file expires: 30d # 支持单位:s(秒)、m(分)、h(时)、d(天)、w(周) grids: [web_mercator] sources: [my_upstream_source]
3. 清理过期缓存
MapProxy不会自动删除过期缓存,需通过mapproxy-seed工具执行清理操作:
mapproxy-seed -c your_mapproxy_config.yaml --clean my_file_cache
该命令会扫描指定缓存,删除所有已过期的缓存文件。
优先级说明
若同时配置了上游缓存控制和本地固定过期时间,MapProxy会取过期时间更短的规则作为有效标准。
内容的提问来源于stack exchange,提问作者n1try
相关产品推荐
相关产品推荐

