2017-12-21 24 views
0

multiwebsite docker server를 구축하려고합니다.Docker nginx reverse proxy 502 fastcgi에서 오류가 발생했습니다.

프록시 용 컨테이너 하나와 웹 사이트 용 컨테이너 하나를 갖고 싶습니다. 또한 성능 향상을 위해 fastcgi를 사용하고 싶습니다. 내가

문제 jwilder/nginx-proxy 사용하고

: 설정 FastCGI를 (- VIRTUAL_PROTO = FastCGI를) 원인이 502 잘못된 게이트웨이 오류 :

2017/12/21 22:06:20 [error] 5#5: *24 connect() failed (111: Connection refused) while connecting to upstream, 
client: 77.X3.38.17, server: domain.tdl, request: "GET/HTTP/2.0", upstream: "fastcgi://172.18.0.2:9000", host: "domain.tdl" 

웹 사이트 컨테이너

version: "3" 
services: 
    test: 
    image: richarvey/nginx-php-fpm:latest 
    volumes: 
     - /srv/www/domain.tdl/data:/var/www/html 
    expose: 
     - 80 
     - 443 
    restart: always 
    environment: 
     VIRTUAL_HOST: domain.tdl 
     VIRTUAL_PROTO: fastcgi 
     VIRTUAL_PORT: 9000 
     VIRTUAL_ROOT: /var/www/html 
    container_name: test 
networks: 
    default: 
    external: 
     name: nginx-proxy 

을 NGINX- PROXY COINTAINER

내의 nginx 프록시 용기 내 웹 사이트를 볼 수없는 이유는 Nginx에-PROXY 컨테이너

# domain.tdl 
upstream domain.tdl { 
           ## Can be connect with "nginx-proxy" network 
         # test 
         server 172.18.0.2:9000; 
} 
server { 
     server_name domain.tdl; 
     listen 80 ; 
     access_log /var/log/nginx/access.log vhost; 
     return 301 https://$host$request_uri; 
} 
server { 
     server_name domain.tdl; 
     listen 443 ssl http2 ; 
     access_log /var/log/nginx/access.log vhost; 
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:!DSS'; 
     ssl_prefer_server_ciphers on; 
     ssl_session_timeout 5m; 
     ssl_session_cache shared:SSL:50m; 
     ssl_session_tickets off; 
     ssl_certificate /etc/nginx/certs/domain.tdl.crt; 
     ssl_certificate_key /etc/nginx/certs/domain.tdl.key; 
     ssl_dhparam /etc/nginx/certs/domain.tdl.dhparam.pem; 
     add_header Strict-Transport-Security "max-age=31536000"; 
     include /etc/nginx/vhost.d/default; 
     location/{ 
       root /var/www/html; 
       include conf.d/fastcgi.conf; 
       fastcgi_pass domain.tdl; 
      } 
} 

FROM

version: '3' 
services: 
    nginx: 
    image: nginx 
    labels: 
     com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true" 
    container_name: nginx 
    restart: unless-stopped 
    ports: 
     - "80:80" 
     - "443:443" 
    volumes: 
     - /srv/www/nginx-proxy/conf.d:/etc/nginx/conf.d 
     - /srv/www/nginx-proxy/vhost.d:/etc/nginx/vhost.d 
     - /srv/www/nginx-proxy/html:/usr/share/nginx/html 
     - /srv/www/nginx-proxy/certs:/etc/nginx/certs:ro 
    nginx-gen: 
    image: jwilder/docker-gen 
    command: -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf 
    container_name: nginx-gen 
    restart: unless-stopped 
    volumes: 
     - /srv/www/nginx-proxy/conf.d:/etc/nginx/conf.d 
     - /srv/www/nginx-proxy/vhost.d:/etc/nginx/vhost.d 
     - /srv/www/nginx-proxy/html:/usr/share/nginx/html 
     - /srv/www/nginx-proxy/certs:/etc/nginx/certs:ro 
     - /var/run/docker.sock:/tmp/docker.sock:ro 
     - /srv/www/nginx-proxy/nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro 

    nginx-letsencrypt: 
    image: jrcs/letsencrypt-nginx-proxy-companion 
    container_name: nginx-letsencrypt 
    restart: unless-stopped 
    volumes: 
     - /srv/www/nginx-proxy/conf.d:/etc/nginx/conf.d 
     - /srv/www/nginx-proxy/vhost.d:/etc/nginx/vhost.d 
     - /srv/www/nginx-proxy/html:/usr/share/nginx/html 
     - /srv/www/nginx-proxy/certs:/etc/nginx/certs:rw 
     - /var/run/docker.sock:/var/run/docker.sock:ro 
    environment: 
     NGINX_DOCKER_GEN_CONTAINER: "nginx-gen" 
     NGINX_PROXY_CONTAINER: "nginx" 

networks: 
    default: 
    external: 
     name: nginx-proxy 

의 nginx 설정 파일? 나는 항구로 무언가를 망 쳤니?

+0

'업스트림 도메인 .tdl { ## "nginx-proxy"네트워크와 연결할 수 있습니다. # 테스트 서버 172.18.0.2:9000; }'nginx-php-fpm 컨테이너가이 주소를 얻을 것이라는 보장은 없습니다. jwilder/nginx-proxy는 도메인별로 적절한 컨테이너를 찾습니다 (귀하의 경우 domain.tld). –

답변

0

도커 작성 정의가 괜찮아 보입니다.

체크가 프록시 컨테이너에서 실행

$ curl 172.18.0.2:9000 

출력. 이 문제는 일반적으로 PHP 데몬이 작동을 멈추거나 요청에 의해 과부하가 발생하여 PHP 요청이 삭제되는 경우 발생합니다.

PHP 데몬이 제대로 작동하는지 확인한 후에도 오류가 계속 발생하면 php-fpm 컨테이너에서 문제가 발생합니다. Nginx 오류 로그는 /var/log/nginx/error.log에서도 유용합니다. 컨테이너에 문제가 있는지 확인하십시오.