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

Docker环境下nginx连接fastcgi上游phpfpm提示Connection refused如何解决

问题原因

nginx报错是因为无法和phpfpm容器的9000端口建立TCP连接,核心原因有以下几个:

  • phpfpm的www.conf配置中监听地址为127.0.0.1:9000,仅允许容器本地访问,nginx容器的跨容器请求会被拒绝
  • phpfpm服务启动失败,没有正常监听9000端口
  • phpfpm实际监听的端口和nginx配置的9000端口不一致
解决步骤
  1. 检查phpfpm的监听配置
    进入phpfpm容器执行命令:
    docker exec -it phpfpm bash
    找到php-fpm池配置文件(默认路径为/etc/php/7.4/fpm/pool.d/www.conf),修改listen配置项:
; 注释掉原来的本地监听或者套接字监听配置
; listen = 127.0.0.1:9000
; listen = /run/php/php7.4-fpm.sock
; 改为监听所有地址的9000端口
listen = 0.0.0.0:9000
  1. 验证端口监听状态
    在phpfpm容器内执行ss -tunlp | grep 9000,如果有对应监听输出说明配置生效,没有输出的话查看phpfpm日志/var/log/php7.4-fpm.log排查启动错误。
  2. 重启php容器生效
    执行docker restart phpfpm,之后再次访问localhost:8080验证即可。
补充检查项
  • 可以通过docker logs phpfpm查看phpfpm启动日志,确认没有配置语法错误、扩展缺失等导致启动失败的问题
  • 当前docker-compose配置和nginx配置的服务解析逻辑没有问题,同一个compose网络内phpfpm作为容器名可以被nginx正常解析到对应IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:54:04