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

Nginx报错[emerg] host not found in upstream 'php'问题排查求助

解决Nginx报错「host not found in upstream "php"」的问题

报错含义解释

[emerg] host not found in upstream "php" in /etc/nginx/conf.d/default.conf 这个错误表示:Nginx启动加载配置时,无法解析名为php的上游服务器(即你的PHP-FPM服务),找不到对应的主机地址,导致启动失败。

配置错误分析

你的docker-compose.yaml中,PHP服务的名称是app,但Nginx配置文件里的fastcgi_pass php:9000;指定要连接的服务名为php。在Docker Compose的默认网络环境中,服务名就是容器的DNS别名,Nginx只能通过服务名找到对应的容器,因此两者名称不匹配就会出现这个报错。

两种解决方法

方法1:修改Nginx配置,适配服务名

打开你的Nginx配置文件,将fastcgi_pass的目标服务名改为app:

location ~ \.php$ {
    fastcgi_pass app:9000;  # 把php改成app
    fastcgi_index index.php;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

方法2:修改docker-compose.yaml,重命名PHP服务

将docker-compose.yaml中的PHP服务名改为php,同时同步修改web服务的volumes_from配置:

services:
    web:
        image: nginx:latest
        ports:
            - "80:80"
        volumes:
            - ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
        volumes_from:
            - php  # 同步修改为php
    php:  # 将原来的app改为php
        build:
            dockerfile: ./php/Dockerfile
        volumes:
            - ./app:/app

修改完成后,重新执行docker compose up即可正常启动服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 18:27:04