не удалось (104: сброс соединения по узлу) при чтении заголовка ответа из апстрима в Docker и Ubuntu

Я создал DockerFile как ниже

FROM ubuntu:18.04


MAINTAINER Amin Keshavarz <ak_1596@yahoo.com>

# Add your github access token if needed in composer update as arg or env var.
ARG github_access_token
ENV github_access_token=${github_access_token}


ENV DEBIAN_FRONTEND=noninteractive


# Install dependency packages
RUN apt-get update && apt-get install -yq --no-install-recommends \
git \
curl \
ca-certificates \
#    php \
php7.2-fpm php7.2-common \
php7.2-mongodb php-pear php7.2-dev

RUN apt-get install -y build-essential
# Install mongodb driver
RUN pecl install mongodb
#RUN echo "extension=mongodb.so" >> /etc/php/7.2/fpm/php.ini
#RUN echo "extension=mongodb.so" >> /etc/php/7.2/cli/php.ini

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

RUN apt-get install -y php7.2-mbstring \
php7.2-intl \
php7.2-soap \
php7.2-curl \
php7.2-imap \
php7.2-zmq \
php7.2-bcmath \
php7.2-gd \
php7.2-zip

# Add working directory and copy files into that.
RUN mkdir /app

VOLUME /app
WORKDIR /app
COPY . /app

# Start application installation by composer update command.
#RUN composer config -g github-oauth.github.com $github_access_token
RUN composer global require fxp/composer-asset-plugin
#RUN composer update -vvv


ENTRYPOINT service php7.2-fpm start && /bin/bash

CMD ["php-fpm"]

EXPOSE 9000

И используя ниже docke-compose.yml

version: "3"services:
web:
build:
context: .
dockerfile: ./docker/Dockerfile
container_name: "crm_web"tty: true
ports:
- "9000:9000"networks:
- default
volumes:
- .:/app
nginx:
image: nginx:1.10.3
container_name: "crm_nginx"ports:
- 8080:80
restart: always
volumes:
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
- .:/app
links:
- web
depends_on:
- web

И имеет ниже nginx.conf

server {
client_max_body_size 100M;
set $host_path "/app";
access_log  /app/log/access.log  main;

server_name  _ localhost;
root   $host_path/;
set $yii_bootstrap "index.php";

charset utf-8;

location / {
index  index.html $yii_bootstrap;
try_files $uri $uri/ /$yii_bootstrap?$args;
}

location ~ ^/(protected|framework|themes/\w+/views) {
deny  all;
}

#avoid processing of calls to unexisting static files by yii
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}

# pass the PHP scripts to FastCGI server listening on web:9000
#
location ~ \.php {
fastcgi_split_path_info  ^(.+\.php)(.*)$;

#let yii catch the calls to unexising PHP files
set $fsn /$yii_bootstrap;
if (-f $document_root$fastcgi_script_name){
set $fsn $fastcgi_script_name;
}

fastcgi_pass   web:9000;
include fastcgi_params;
fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

#PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
fastcgi_param  PATH_INFO        $fastcgi_path_info;
fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
}

# prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}

Но когда я пытаюсь подключить мой хост http://localhost:8080 я получаю ниже ошибку в моей консоли из докера:

crm_nginx | 2018/12/03 14:48:14 [ошибка] 28 # 28: * 17 recv () не удалось (104:
Сброс соединения по одноранговой сети) при чтении заголовка ответа из восходящего потока,
клиент: 172.18.0.1, сервер: _, запрос: «GET / web / HTTP / 1.1»,
upstream: «fastcgi: //172.18.0.2: 9000», хост: «localhost: 8080»

И получить 502 Bad Gateway в браузере.

Можете ли вы помочь мне решить эту проблему?
Что я пропустил?

0

Решение

Добавьте строку ниже в ваш Dockerfile

RUN sed -i "s|;*listen\s*=\s*/run/php/php7.2-fpm.sock|listen = 9000|g" /etc/php/7.2/fpm/pool.d/www.conf && \
sed -i "s|;*listen\s*=\s*/||g" /etc/php/7.2/fpm/php-fpm.conf

Это скажет php7.2-fpm прослушивать порт 9000 вместо /run/php/php7.2-fpm.sock,

Будьте осторожны, не добавляйте IP-адрес перед портом, как 127.0.0.1:9000 потому что это заставляет php прослушивать порт и ip одновременно, но у вас нет контейнера с ip адресом.

Я нашел свой ответ здесь, и вы можете сослаться на это:

https://www.digitalocean.com/community/questions/nginx-error-111-connection-refused

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector