使用Docker部署Laravel项目时Nginx无法连接后端求助
Docker部署Laravel:Nginx无法连接后端问题排查
问题详情
Docker环境下数据库、Web服务、后端服务容器均显示正常运行,但Nginx无法连接后端服务,Nginx错误日志如下:
对应docker-compose配置截图:
排查修复方案
- 修正Nginx代理地址:
Nginx配置中代理后端的地址必须使用docker-compose定义的服务名(比如截图里的app服务),不能用localhost或宿主机IP。因为Docker容器间通过服务名在内部网络通信,localhost在Nginx容器中指向自身,无法访问后端容器。
正确的Nginx代理配置示例:proxy_pass http://app:9000; - 确认后端服务监听地址:
确保后端服务(如PHP-FPM)在容器内监听0.0.0.0:9000,而非127.0.0.1:9000。后者仅允许容器内部访问,外部容器(如Nginx)无法连接。 - 测试容器间网络连通性:
进入Nginx容器,执行ping app(替换为你的后端服务名),验证是否能解析到后端容器IP并连通。如果不通,检查docker-compose中所有服务是否处于同一网络(默认同一compose文件的服务会加入默认网络)。 - 检查后端服务实际运行状态:
容器显示运行不代表内部服务正常启动。进入后端容器,执行ps aux查看服务进程是否存在,或查看后端服务日志排查启动异常。
内容的提问来源于stack exchange,提问作者Aungkolin
相关产品推荐
相关产品推荐

