Docker, Nginx 및 PHP7: ERROR 111 업스트림에 연결하는 동안 연결이 거부되었습니다.

Docker, Nginx 및 PHP7: ERROR 111 업스트림에 연결하는 동안 연결이 거부되었습니다.

잘 작동하는 NGINX-PHP7-COMPOSER 이미지를 실행했지만 Slim Framework를 사용할 때 URL 재작성이 작동하도록 Nginx의 기본 구성을 변경해야 했습니다.

이제 로그에 다음 오류가 표시됩니다.

2017-01-21 14:38:34,357 정보 성공: php-fpm7이 RUNNING 상태로 전환되었으며 프로세스가 1초 이상 동안 유지되었습니다(startsecs).

2017-01-21 14:38:34,359 정보 성공: nginx가 RUNNING 상태로 전환되었으며 프로세스가 1초 이상 동안 유지되었습니다(startsecs).

2017/01/21 14:38:37 [오류] 15#15: *1 connect()가 업스트림에 연결하는 동안 실패했습니다(111: 연결이 거부됨), 클라이언트: 172.18.0.1, 서버: auth-api, 요청: "GET /hello HTTP/1.1", 업스트림: "fastcgi://172.18.0.6:9000", 호스트: "localhost:9100"

172.18.0.1 - - [21/Jan/2017:14:38:37 +0000] "GET /hello HTTP/1.1" 502 537 "-" "Mozilla/5.0(Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 ( Gecko와 같은 KHTML) Chrome/55.0.2883.95 Safari/537.36"

내가 마운트한 구성 파일이 로드되었습니다(nginx -T로 bash를 확인했습니다).

server {
    listen 80;
    server_name auth-api;
    index index.php;
    root /var/www/html;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.php {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_index index.php;
        fastcgi_pass auth-api:9000;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

내 Dockerfile(저장소에서 로드 중인 이미지만):

FROM richarvey/nginx-php-fpm

그리고 내 docker-compose.yml은 다음과 같습니다.

version: '2'

services:

#############
## MARIADB ##
#############

    mariadb:
        image: mariadb
        restart: always
        volumes:
            - "./log/mariadb:/var/log/mysql:rw"
            - "./data/mariadb:/var/lib/mysql:rw"
        environment:
            - "MYSQL_ROOT_PASSWORD=pass"
        ports:
            - "3306:3306"

##############
## FRONTEND ##
##############

    frontend:
        image: skiychan/nginx-php7:latest
        volumes:
            - ./services/frontend/src:/data/www
        links:
            - mariadb:mysql
        ports:
            - "9001:80"

##############
## AUTH API ##
##############

    auth-api:
        build: ./services/api/auth/
        volumes:
            - ./services/api/auth/code/:/var/www/html
            - ./services/api/auth/:/etc/nginx/sites-available/
        links:
            - mariadb:mysql
        ports:
            - "9100:80"
            - "9000:9000"

텔넷으로 IP를 ping했는데...

텔넷 핑

무엇이 잘못되고 있는지 아시나요?

관련 정보