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

使用Docker+Nginx反向代理时出现502 Bad Gateway问题求助

排查Docker+Nginx反向代理502 Bad Gateway问题

嘿,我帮你拆解几个核心排查方向,毕竟IP访问正常、域名访问502,大概率是域名解析后的流量路径出了问题:

1. 先查Nginx配置里的上游服务地址

这是最常见的坑:

  • 如果你在Nginx的proxy_pass里写的是localhost或者宿主机IP,那在Docker容器里的localhost指的是容器本身,不是宿主机!这时候得换成宿主机的内部局域网IP(比如192.168.x.x),或者用Docker专属的host.docker.internal(针对Docker Desktop环境)。
  • 要是你用Docker Compose的服务名(比如laravel-project1)作为上游地址,得确保Nginx容器和Laravel容器在同一个Docker网络里——Docker Compose默认会给同配置文件里的服务创建专属网络,要是你是分开的配置文件,就得手动指定共享网络。

2. 验证/etc/hosts的解析是否真的生效

先跑个命令确认域名指向对不对:

ping your-domain.local

如果返回的不是你预期的服务器IP(比如127.0.0.1或者公网IP),那先修正/etc/hosts的配置,别在这一步栽跟头。

3. 检查Laravel容器的状态和连通性

先确认Laravel服务是不是真的在跑:

docker-compose ps

看服务的State是不是Up,Ports里的映射有没有问题(比如8000/tcp或者9000/tcp)。
接着可以钻进Nginx容器,试试ping Laravel的服务名,看网络通不通:

docker exec -it 你的Nginx容器名 ping laravel服务名

如果ping不通,那就是Docker网络的问题,要么是网络没共享,要么是服务名写错了。

4. 扒日志找线索!

502的本质是Nginx连不上后端服务,日志能直接告诉你原因:

  • 看Nginx的错误日志:
docker-compose logs web

如果日志里有connect() failed (111: Connection refused),那就是Nginx找不到后端服务,要么地址错了,要么Laravel没启动成功。

  • 再看Laravel容器的日志,确认服务本身有没有报错:
docker-compose logs 你的Laravel服务名

比如依赖缺失、端口被占用、FPM没正常启动之类的,都可能导致后端不可用。

5. 检查Laravel的监听地址

要是Laravel用的是内置服务器或者FPM,得确保监听的是0.0.0.0,而不是127.0.0.1!后者只能在容器内部访问,外部(包括Nginx容器)根本连不上。比如FPM的www.conf里,listen得设成0.0.0.0:9000才行。

另外你提到是多个Laravel项目,别忘了Nginx里要给每个域名配置对应的上游服务,比如:

server {
    server_name project1.local;
    location / {
        proxy_pass http://project1-app:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

server {
    server_name project2.local;
    location / {
        proxy_pass http://project2-app:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

要保证每个域名对应的上游服务名和docker-compose.yml里的服务名完全一致。

如果能把完整的docker-compose.yml和Nginx配置贴出来,能更快定位问题,但先按上面的步骤排查,应该能找到症结~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:57:44