2017-02-18 108 views
1

嗨,我是這個項目的新手,我有問題在CentOS7 ec2實例上託管它。 我得到這個錯誤時,我打我的域名:連接到上游的cookie-cutter django nginx connect()失敗(111:連接被拒絕),

2017/02/17 05:53:35 [error] 27#27: *20 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server:myApp.io, request: "GET /favicon.ico HTTP/1.1", upstream: "http://172.18.0.7:5000/favicon.ico", host: "myApp.io", referrer: "https://myApp.io" 

當我查看日誌

docker logs d381b6d093fa 
sleep 5 
build starting nginx config 
replacing ___my.example.com___/myApp.io 
user nginx; 
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"'; 

    access_log /var/log/nginx/access.log main; 

    sendfile  on; 
    #tcp_nopush  on; 

    keepalive_timeout 65; 

    #gzip on; 

    upstream app { 
    server django:5000; 
    } 

    server { 
    listen 80; 
    charset  utf-8; 


    server_name myApp.io ; 

    location /.well-known/acme-challenge { 
     proxy_pass http://certbot:80; 
     proxy_set_header Host   $host; 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header X-Forwarded-Proto https; 
    } 


    location/{ 
     # checks for static file, if not found proxy to app 
     try_files $uri @proxy_to_app; 
    } 

    # cookiecutter-django app 
    location @proxy_to_app { 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_pass http://app; 

    } 
    } 
} 

. 
Firing up nginx in the background. 
Waiting for folder /etc/letsencrypt/live/myApp.io to exist 
replacing ___my.example.com___/myApp.io 
replacing ___NAMESERVER___/127.0.0.11 
I made sure to add my ip address to the env file for allowed hosts. 

當我看着運行容器我得到:

docker ps -a 
CONTAINER ID  IMAGE        COMMAND     CREATED    STATUS      PORTS          NAMES 
3887c3465802  myApp_nginx      "/bin/sh -c /start.sh" 3 minutes ago  Up 3 minutes    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp myApp_nginx_1 
91cbc2a2359d  myApp_django     "/entrypoint.sh /g..." 3 minutes ago  Up 3 minutes               myApp_django_1 

我的搬運工-compose.yml的樣子:

version: '2' 

volumes: 
    postgres_data: {} 
    postgres_backup: {} 

services: 
    postgres: 
    build: ./compose/postgres 
    volumes: 
     - postgres_data:/var/lib/postgresql/data 
     - postgres_backup:/backups 
    env_file: .env 

    django: 
    build: 
     context: . 
     dockerfile: ./compose/django/Dockerfile 
    user: django 
    depends_on: 
     - postgres 
     - redis 
    command: /gunicorn.sh 
    env_file: .env 

    nginx: 
    build: ./compose/nginx 
    depends_on: 
     - django 

     - certbot 

    ports: 
     - "0.0.0.0:80:80" 

    environment: 
     - MY_DOMAIN_NAME=myApp.io 
    ports: 
     - "0.0.0.0:80:80" 
     - "0.0.0.0:443:443" 
    volumes: 
     - /etc/letsencrypt:/etc/letsencrypt 
     - /var/lib/letsencrypt:/var/lib/letsencrypt 

    certbot: 
    image: quay.io/letsencrypt/letsencrypt 
    command: bash -c "sleep 6 && certbot certonly -n --standalone -d myApp.io --text --agree-tos --email [email protected] --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --verbose --keep-until-expiring --standalone-supported-challenges http-01" 
    entrypoint: "" 
    volumes: 
     - /etc/letsencrypt:/etc/letsencrypt 
     - /var/lib/letsencrypt:/var/lib/letsencrypt 
    ports: 
     - "80" 
     - "443" 
    environment: 
     - TERM=xterm 


    redis: 
    image: redis:latest 

    celeryworker: 
    build: 
     context: . 
     dockerfile: ./compose/django/Dockerfile 
    user: django 
    env_file: .env 
    depends_on: 
    - postgres 
    - redis 
    command: celery -A myApp.taskapp worker -l INFO 

    celerybeat: 
    build: 
     context: . 
     dockerfile: ./compose/django/Dockerfile 
    user: django 
    env_file: .env 
    depends_on: 
     - postgres 
     - redis 
    command: celery -A myApp.taskapp beat -l INFO 

我的.env文件有正確的允許主機,這是我的EC2實例IP地址

任何想法我做錯了嗎?

回答

0

幾個月前我面臨同樣的問題。請看看這個答案: Problem with SELinux。它幫助我像一個魅力:)

+0

謝謝,但我不認爲這是我有同樣的問題。我嘗試瞭解決方案,但沒有奏效。我得到錯誤代碼111,該解決方案是錯誤代碼13。 – bennicholes

相關問題