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

Docker部署Laravel项目Nginx返回502连接被拒绝问题求助

问题原因与解决方案

核心问题根源

当前配置的核心冲突是:

  • Nginx配置中尝试通过FastCGI协议转发PHP请求到app:9000,这是php-fpm服务的默认监听端口
  • 但你的PHP容器实际启动的是Laravel自带的Artisan内置服务器,监听的是8000端口,且未启用php-fpm服务,9000端口完全没有进程监听,自然会返回连接拒绝的502错误。

推荐解决方案(生产可用标准架构:Nginx + php-fpm)

步骤1:修改PHP Dockerfile

替换原Dockerfile内容如下,使用带fpm的官方PHP镜像,移除Artisan启动命令:

# 替换基础镜像为fpm版本
FROM php:7.4-fpm

# Install system dependencies
RUN apt-get update && apt-get install -y \
    git \
    curl \
    zip \
    unzip \
    libpng-dev \
    libonig-dev \
    libxml2-dev

# 安装Laravel required PHP扩展
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd

# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Get latest Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Set working directory
WORKDIR /var/www
COPY database/ database/
COPY composer.json composer.json
RUN composer install \
    --no-interaction \
    --no-plugins \
    --no-scripts \
    --no-dev \
    --prefer-dist
COPY . .
RUN composer dump-autoload
RUN php artisan optimize:clear

# 给Laravel目录设置正确权限
RUN chown -R www-data:www-data /var/www \
    && chmod -R 775 /var/www/storage /var/www/bootstrap/cache

# php-fpm镜像默认启动命令就是fpm,无需额外指定,监听9000端口
EXPOSE 9000

步骤2:验证配置生效

重新构建镜像并启动容器:

docker-compose down
docker-compose build app
docker-compose up -d

故障排查验证

如果仍有问题可按以下步骤排查:

  • 查看Nginx错误日志确认报错信息:docker logs rating-nginx
  • 进入PHP容器确认9000端口监听:docker exec rating-app ss -tunlp | grep 9000
  • 确认Nginx容器可连通PHP容器:docker exec rating-nginx ping app

临时测试方案(仅本地开发用,不推荐生产)

如果你不想使用php-fpm,只想保留Artisan内置服务器,可修改Nginx配置替换所有location规则为反向代理:

server {
    listen 80;
    index index.php index.html;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;

    location / {
        proxy_pass http://app:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:36:04