[英]docker + php-fpm:+ ngnix 502 Bad Gateway nginx/1.23.2
嗨,我正在尝试用我的 docker-compose 午餐多个项目,每张图片都是我从头开始创建的 FROM debian:11 我的反应和表达完美运行,但我不知道为什么 ngnix 和 symfony 不能相互连接,如果有人知道是什么我得到一个 502 Bad Gateway nginx/1.23.2 的问题,当我在终端中使用我的 docker 构建时,我没有任何错误消息。
FROM debian:11
RUN apt update && \
apt upgrade -y && \
apt install dirmngr ca-certificates software-properties-common gnupg gnupg2 apt-transport-https curl librabbitmq-dev -y && \
curl -sSL https://packages.sury.org/php/README.txt | bash -x && \
apt update && \
apt upgrade -y && \
apt install php8.1 \
php8.1-fpm \
php8.1-mysql \
php8.1-pdo \
php8.1-gd \
php8.1-cli \
php8.1-dom \
php8.1-mbstring \
php8.1-simplexml \
php8.1-phar \
php8.1-dev \
php8.1-amqp \
php8.1-redis \
unzip \
wget \
git -y && \
mkdir /run/php
WORKDIR /var/www/symfony
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
php composer-setup.php && \
php -r "unlink('composer-setup.php');" && \
mv composer.phar /usr/local/bin/composer
RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | bash &&\
apt install symfony-cli
COPY composer.json composer.lock symfony.lock ./
COPY . .
RUN composer install
CMD ["php-fpm8.1", "-F"]
EXPOSE 9000
version: "3.8"
services:
nginx:
restart: unless-stopped
image: nginx:latest
ports:
- 1999:80
volumes:
- ./app/symfony:/var/www/symfony
- ./conf/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php-fpm
- db
php-fpm:
restart: always
build:
context: ./app/symfony
ports:
- 9000:9000
volumes:
- ./app/symfony:/var/www/symfony
depends_on:
- db
healthcheck:
test: [ "CMD", "php", "-v" ]
timeout: 30s
interval: 2s
retries: 30
db:
image: mysql:8
ports:
- 3306:3306
restart: always
volumes:
- ./database:/var/lib/mysql
environment:
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: docker
MYSQL_USER: user
MYSQL_PASSWORD: user_password
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8888:80
depends_on:
- db
node_express:
image: tlugat/debian_express
build:
context: ./app/express
restart: unless-stopped
ports:
- 8081:8081
react:
image: tlugat/debian_react
build:
context: ./app/react
restart: unless-stopped
ports:
- 3000:3000
maildev:
image: maildev/maildev
ports:
- 1080:1080
server {
listen 80;
index index.php;
server_name localhost;
root /var/www/symfony/public;
error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\\.php(/|$) {
fastcgi_pass php-fpm:9000;
fastcgi_split_path_info ^(.+\\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
internal;
}
location ~ \\.php$ {
return 404;
}
}
当您使用 docker 将 ngnix 与 php-fpm 连接时,我找到了我的问题的解决方案,就像您的虚拟机中有虚拟机一样,所以 docker 找到了它,但是当您通过他时不知道该怎么做:fastcgi_pass php-fpm: 9000 ; 您只需要像这样将 ngnix 重定向到 PHP-fpm docker 了解他需要将它们连接在一起
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.