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

GCP虚拟机上Nginx容器无法将请求路由到Web应用故障排查

请求无法路由到Web应用的可能原因

  • 容器环回地址隔离问题:每个Docker容器都有独立的网络命名空间,你Nginx配置里upstream app指向的127.0.0.1:8020是Nginx容器自身的环回地址,既不是宿主机的地址也不是app容器的地址,自然无法定位到运行在app容器内的Web服务。
  • 跨容器网络未打通:三个容器独立启动时默认加入Docker的默认bridge网络,该网络不支持通过容器名做DNS解析,且默认禁止未做端口暴露的跨容器通信。你的mysql容器未做宿主机端口映射,Nginx也无法通过宿主机地址访问mysql服务。
  • Nginx server块未匹配请求:你的配置中server_name设为appServer1,如果请求的Host头为虚拟机IP、其他域名或为空,Nginx会优先匹配官方镜像自带的默认server块(对应/etc/nginx/conf.d/default.conf配置),直接返回默认欢迎页,不会触发你写的代理规则。
  • Nginx自定义配置未正确加载:
    • 若你修改nginx.conf后没有重新构建Nginx镜像,运行的容器仍会使用旧的配置文件
    • 官方Nginx主配置默认仅加载/etc/nginx/conf.d/目录下后缀为.conf的文件,若你复制的配置文件名不符合要求,规则也不会生效
  • 代理端口配置错误:如果你想通过宿主机端口映射访问app服务,宿主机侧暴露的端口是8001,就算你把upstream地址改为宿主机内网IP,也需要填写宿主机IP:8001,而非8020——8020是app容器内部的端口,仅在同一容器网络内可直接访问。

内容的提问来源于stack exchange,提问作者TOI 700 e

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:06:03