111:连接被拒绝 php-fpm 容器 docker 与反向代理 nginx 错误 502 坏网关

时间:2021-02-26 14:18:42

标签: php laravel docker nginx docker-compose

我想我有一个链接问题 我的应用程序有一个错误 我有一个 502 错误的网关错误, 并在应用程序日志中

[error] 6 #6: * 1 connect() failed (111: Connection denied) while 连接到上游,客户端:172.18.0.5,服务器:laravel-api.art,请求:“GET / HTTP / 1.1” , 上游: "fastcgi: //172.18.0.19: 9000", 主机: "laravel-api.art" 172.18.0.5

这是我的 nginx 配置文件

    server {
    listen 80;
    server_name  laravel-api.art;
    index index.php index.html;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/public;
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass laravel-api:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }
}

我的 Dockerfile

  ```  FROM php:7.4-fpm

COPY composer.lock composer.json /var/www/

WORKDIR /var/www

# Install dependencies
RUN apt-get update && apt-get install -y \
    build-essential \
    libpng-dev \
    libzip-dev \
    libjpeg62-turbo-dev \
    libfreetype6-dev \
    locales \
    zip \
    jpegoptim optipng pngquant gifsicle \
    vim \
    unzip \
    git \
    curl

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

# Install extensions
RUN docker-php-ext-install pdo_mysql  zip exif pcntl
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install gd

# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Add user for laravel
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www

# Copy application folder
COPY . /var/www

# Copy existing permissions from folder to docker
COPY --chown=www:www . /var/www
RUN chown -R www-data:www-data /var/www

# change current user to www
USER www

EXPOSE 9000
CMD ["php-fpm"]


# production environment
FROM nginx:stable-alpine
RUN rm /etc/nginx/conf.d/default.conf
#COPY nginx/nginx.conf /etc/nginx/conf.d
COPY nginx/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]```

和我的 docker compose 我使用外部反向代理

```
    version: "3.7"
services:
  #PHP Service
  laravel-api:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ${containerNameServer}
    restart: unless-stopped
    tty: true
    working_dir: /var/www
    volumes:
      - ./:/var/www
      - ./docker-files/php/local.ini:/usr/local/etc/php/conf.d/local.ini
    environment:
      VIRTUAL_HOST: ${VIRTUAL_HOST_SERVER},${VIRTUAL_HOST_WWW_SERVER}
      LETSENCRYPT_HOST: ${LETSENCRYPT_HOST_SERVER}
      LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL}

volumes:
  laravel-api:
networks:
  default:
    external:
      name: webproxy
```
    

有关它适用于其他 nodejs / vuejs 应用程序的信息,但这是我的第一个 Laravel php-fpm 应用程序

0 个答案:

没有答案