1

Hi I am new to this project and I am having issues hosting it on a CentOS7 ec2 instance. I am getting this error when I hit my domain:

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"

When I look at the logs

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.

When I look at running containers I get:

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

My docker-compose.yml looks like:

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 morozovsdenis@gmail.com --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

My .env file has the correct allowed host which is my ec2-instance ip address

Any idea what I am doing incorrectly?

1 Answers1

0

I faced the same issue a few months ago. Please have a look at this answer: Problem with SELinux. It helped me like a charm :)

Community
  • 1
  • 1
adgon92
  • 219
  • 1
  • 7
  • Thank you but I do not think that is the same problem I am having. I tried the solutions and it did not work. I am getting error code 111, that solution was for error code 13. – bennicholes Feb 18 '17 at 19:40