You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker中NGINX缓存配置:容器重启后如何保留缓存?

解决Nginx容器重启后OSM瓦片缓存丢失的问题

核心原因是你的缓存目录/TileCacheVol/tile位于容器内部文件系统中,容器重启时内部存储会被重置。要保留缓存,需要将该目录挂载到宿主机的持久化存储中。

具体步骤:

  1. 在宿主机创建持久化缓存目录
    选择宿主机上一个固定路径创建目录,比如:

    mkdir -p /opt/nginx-osm-cache
    

    调整目录权限,匹配Nginx容器内运行用户的UID(大部分官方Nginx镜像使用UID 101):

    chown -R 101:101 /opt/nginx-osm-cache
    
  2. 启动容器时挂载卷

    • 如果用docker run命令启动,添加卷挂载参数:
      docker run -d -p 105:105 -v /opt/nginx-osm-cache:/TileCacheVol/tile <你的nginx镜像名>
      
    • 如果用Docker Compose,在docker-compose.yml中添加volumes配置:
      services:
        nginx:
          image: <你的nginx镜像名>
          ports:
            - "105:105"
          volumes:
            - /opt/nginx-osm-cache:/TileCacheVol/tile
            - ./nginx.conf:/etc/nginx/nginx.conf # 若你的配置文件是挂载的,保留该行
      
  3. 验证缓存持久化
    重启容器后,检查宿主机/opt/nginx-osm-cache目录下是否存在层级缓存文件(对应配置里的levels=1:2结构),请求瓦片时查看响应头x-nginx-cache是否返回HIT,确认缓存未丢失。

额外提示:

  • 配置中proxy_temp_path指向的/TileCacheVol/tile/tmp会自动在挂载的宿主机目录下创建,无需单独处理,权限继承父目录设置。
  • 确保宿主机有足够磁盘空间匹配你设置的max_size=500000m(500GB)。

内容的提问来源于stack exchange,提问作者Andreas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:01:17