Nginx+PHP-FPM: соединение отклонено при подключении к восходящему каналу (502)Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Nginx+PHP-FPM: соединение отклонено при подключении к восходящему каналу (502)

Сообщение Anonymous »

Я знаю, что существует множество сообщений о 502 Bad Gateway, но мне не удалось решить эту проблему. Я использую Docker Compose для создания отдельных контейнеров для Nginx и PHP-FPM.

Ошибка. Я загружаю файлы PHP в браузере (файлы HTML отображаются нормально):

tc-web | 2018/01/22 19:22:46 [error] 5#5: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 172.18.0.1, server: localhost, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://172.18.0.2:9000", host: "localhost:8080"
tc-web | 172.18.0.1 - - [22/Jan/2018:19:22:46 +0000] "GET /info.php HTTP/1.1" 502 575 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"


Я часами пытался настроить различные конфигурации, использовать сокет Unix и т. д., но все равно получаю ошибку 502 с файлами PHP. Можете ли вы определить, что не так?

Вот все необходимые файлы.

docker-composer. yml:

version: '3'
services:
web:
build:
context: ./docker/nginx
image: tc-web:0.1.0
container_name: tc-web
volumes:
# test files
- ./temp.html:/var/www/html/index.html
- ./temp.php:/var/www/html/info.php
ports:
- 8080:80
depends_on:
- php-fpm

php-fpm:
build:
context: ./docker/php-fpm
image: tc-php:0.1.0
container_name: tc-php
volumes:
- ./temp.html:/var/www/html/index.html
- ./temp.php:/var/www/html/info.php


docker/nginx/Dockerfile:

FROM nginx:1.13.8

# Install programs
RUN apt-get update
RUN apt-get install -y nano && \
apt-get install -y git && \
apt-get install -y procps

RUN mkdir -p /var/www/html

COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf


docker/nginx/nginx.conf:

user www-data;
worker_processes 1;

# error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;

include /etc/nginx/conf.d/default.conf;
}


docker/nginx/default.conf:

server {
listen 80;
server_name localhost;
root /var/www/html;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~* \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}


docker/php-fpm/Dockerfile:

FROM php:7.0-fpm

# Install programs
RUN apt-get update
RUN apt-get install -y nano && \
apt-get install -y procps

RUN mkdir -p /var/www/html

COPY php-fpm.conf /usr/local/etc/php-fpm.conf
COPY www.conf /usr/local/etc/php-fpm.d/www.conf


docker/php-fpm/php-fpm.conf:

[global]

include=etc/php-fpm.d/www.conf


docker/php-fpm/www.conf:

[global]
;daemonize = no
; if we send this to /proc/self/fd/1, it never appears
error_log = /proc/self/fd/2

[www]
user = www-data
group = www-data

listen = 127.0.0.1:9000
;listen = /var/run/php-fpm/php7-fpm.sock
;listen.owner = www-data
;listen.group = www-data
;listen.mode = 0660

access.log = /proc/self/fd/2

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

; Ensure worker stdout and stderr are sent to the main error log.
catch_workers_output = yes


Подробнее здесь: https://stackoverflow.com/questions/483 ... stream-502
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»