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

Docker运行的Nginx容器关闭后仍可访问静态内容的原因咨询

为啥容器停了还能看到内容?浏览器缓存背锅!

你遇到的这个情况太常见啦——浏览器本地缓存在作祟!

当你第一次访问localhost:8080时,浏览器已经把Nginx返回的静态HTML内容下载到本地存起来了。哪怕你关掉了Nginx容器,浏览器再访问同一个地址时,会先检查本地有没有缓存的内容,发现有就直接拿出来显示,根本不会去连已经停掉的服务器。

怎么确认是缓存的问题?

  • 打开浏览器的无痕/隐私模式访问localhost:8080,这时候浏览器不会调用之前的缓存,肯定会显示无法连接的页面(比如“无法访问此网站”)。
  • 或者在正常窗口里按Cmd+Shift+R(Mac)强制刷新,这个操作会跳过本地缓存,直接向服务器发请求,同样会看到无法访问的提示。

怎么避免开发时被缓存坑?

如果是开发阶段想实时看到内容变化,可以给Nginx加个禁用缓存的配置:

  1. 在你的/mycontent文件夹里创建一个名为nginx.conf的文件,内容如下:
    server {
        listen 80;
        server_name localhost;
    
        location / {
            root /usr/share/nginx/html;
            index index.html index.htm;
            # 禁用缓存
            add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate";
            add_header Pragma "no-cache";
            add_header Expires "0";
        }
    }
    
  2. 启动容器的时候把这个配置文件挂载到Nginx的配置目录:
    docker run --name my-nginx --rm -v /mycontent:/usr/share/nginx/html:ro -v /mycontent/nginx.conf:/etc/nginx/conf.d/default.conf:ro -p 8080:80 nginx
    

这样每次刷新页面都会从服务器拉取最新内容,不会再被缓存误导啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:10:24