Docker化LEMP栈部署全新Laravel7项目出现502 Bad Gateway问题求助
Docker LEMP栈502 Bad Gateway错误解决方案
最高优先级修复项
Nginx配置存在明显笔误,直接导致请求转发失败:
修改config/nginx/conf.d/app.conf中的fastcgi_param配置行,原错误写法:
fastcgi_param CRIPT_FILENAME $document_root$fastcgi_script_name;
修正为:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
其他排查步骤
- 验证PHP容器运行状态
执行docker ps确认app容器处于正常运行状态,若容器异常退出,执行docker logs app查看启动日志,排查start_script.sh执行错误、依赖缺失、端口占用等问题。 - 验证容器间网络连通性
进入Nginx容器执行连通性测试:
docker exec -it webserver sh # 检查是否能解析app容器地址 ping app # 检查PHP-FPM 9000端口是否可访问 nc -zv app 9000
如果端口无法连通,检查PHP容器内的FPM配置,确认监听地址为0.0.0.0:9000而非本地回环地址。
- 验证文件权限匹配
Linux环境下本地用户UID/GID如果不等于1000,会和容器内www用户的权限不匹配,导致Nginx、PHP-FPM无法读取项目文件,可执行以下命令修复本地目录权限:
sudo chown -R 1000:1000 你的项目根目录绝对路径
也可修改Dockerfile中www用户的UID/GID和本地用户保持一致。
- 重启生效配置
所有修改完成后重建容器加载新配置:
docker-compose down -v docker-compose up -d --build
内容的提问来源于stack exchange,提问作者Test
相关产品推荐
相关产品推荐

