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

Nginx代理多Docker容器应用:自定义应用404问题排查

排查与解决思路

  • 代理路径传递问题
    当前Nginx的location /app配置会把/app完整路径传给后端的自定义应用。如果你的应用本身没有配置/app开头的路由,自然会返回404。解决办法二选一:

    1. 修改自定义应用,添加/app路径的路由支持;
    2. 在Nginx的proxy_pass末尾加/,这样Nginx会把/app去掉后再转发请求:
      location /app {
        proxy_pass http://${APP_HOST}:3000/;
      }
      
  • 验证后端容器的可访问性
    直接进入Nginx容器,用curl测试能不能访问到自定义应用:

    docker exec -it documan-nginx-redirect curl http://app_container:3000
    

    如果这一步也返回404,说明问题出在自定义应用本身,和Nginx无关,要检查应用的路由配置、端口监听或者容器是否正常启动。

  • 检查Nginx配置的变量替换
    进入Nginx容器,查看生成的最终配置文件,确认${APP_HOST}已经被正确替换成app_container:

    docker exec -it documan-nginx-redirect cat /etc/nginx/conf.d/default.conf
    

    如果变量没替换成功,可能是envsubst的参数或者模板里的变量拼写有问题,仔细核对写法。

  • 检查自定义应用的端口监听
    确认app_container内部的应用确实在监听3000端口。可以用docker inspect app_container查看容器的端口配置,或者进入容器内部用netstat -tulpn(如果容器里有这个工具)检查端口是否被正确监听。


内容的提问来源于stack exchange,提问作者Monika Žunec

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:33:36