一次下载失败,往往不是接口问题:容器挂载与反向代理排查

4次阅读
没有评论

浏览器报下载失败,服务日志却看不出异常时,先别急着改业务代码。文件下载跨过了应用、容器文件系统和 Web 服务器三层,任一层的路径理解不一致,都会把一个普通链接变成 404、403 或空文件。

先确认文件到底在哪一层

进入运行中的容器,按接口实际返回的相对路径拼出完整路径,再检查文件是否存在、大小是否正常、运行用户是否可读。宿主机有文件并不等于容器里有文件;绑定挂载的源路径、目标路径和启动用户必须同时正确。

再看应用如何生成下载地址

把“磁盘路径”和“对外 URL”分开配置。磁盘路径只给应用读写,URL 只给浏览器访问。尤其是上传目录换过位置、环境变量覆盖过配置文件时,最容易出现写入成功、读取却指向旧目录的情况。

最后沿着反向代理走一遍

用 curl 分别请求应用端口和公网域名。如果应用端口正常、域名异常,重点看 Nginx 的 location、alias/root 语义、尾部斜杠和静态文件权限。不要只根据前端报错猜原因,三次请求能很快把问题缩到一层。

给以后留一条可复现的线索

记录下载接口、返回 URL、容器内绝对路径、挂载声明和代理规则。发布前用一份真实小文件做冒烟验证,比上线后临时翻 compose 文件可靠得多。

正文完
 0
bdspAdmin
版权声明:本站原创文章,由 bdspAdmin 于2026-07-10发表,共计496字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)