我想我有一个链接问题 我的应用程序有一个错误 我有一个 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 应用程序