Назад | Перейти на главную страницу

Ошибка Nginx в dockerized контейнере: (111: соединение отклонено) при подключении к восходящему потоку, клиенту

Я запускаю приложение django с nginx в контейнере докера, и все работало отлично, пока я не перестроил контейнер. Внезапно я получаю ошибку 502 (Bad Gateway), а в журналах написано

(111: соединение отклонено) при подключении к восходящему потоку, клиент: 216.245.221.82

Я понятия не имею, что изменилось, если честно, и я новичок в nginx. Код django / python не должен изменяться. Я беру последний образ nginx, поэтому, возможно, произошло изменение, которое не работает с моей конфигурацией. Но я попробовал и более старые версии и получил ту же ошибку. Может быть, мое приложение вылетает из-за отсутствия порта, который оно слушает? (см. скриншот)

Я попытался настроить ALLOWED_HOSTS на ['*'], установка SSL_NO_VERIFY в True и False, все та же ошибка. У меня нет вариантов .... Я не знаю, как лучше отладить. Локально приложение работает хорошо, поэтому установка отладки на True мне не помогла.

Я просто не знаю. Я развертываю свое приложение на экземпляре EC2 с nginx в контейнере докеров.

Вот мои конфиги и мой составной файл:

server {

    listen 443 ssl;
    server_name mywebsite.de;
    client_max_body_size 0;
    charset utf-8;
    ssl_stapling off;
    ssl_stapling_verify off;

    ssl_certificate            /etc/letsencrypt/live/mywebsite.de/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/mywebsite.de/privkey.pem;


    set $my_host $http_host;
    if ($http_host = "mywebsite.de") {
          set $my_host "mywebsite.de";
    }


    location / {
        proxy_pass http://django:5000;
        proxy_set_header Host $my_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}

server {
        listen 80 ;
        server_name mywebsite.de;
        return 301 https://mywebsite.de$request_uri;
}
server {
        listen 80 ;
        server_name www.mywebsite.de;
        return 301 https://mywebsite.de$request_uri;
}
server {
        listen 443 ;
        server_name www.mywebsite.de;
        return 301 https://mywebsite.de$request_uri;
        ssl_stapling off;
        ssl_stapling_verify off;

        ssl_certificate           /etc/letsencrypt/live/mywebsite.de/fullchain.pem;
        ssl_certificate_key       /etc/letsencrypt/live/mywebsite.de/privkey.pem;
}

version: '3'

services:
  django:
    build:
      context: .
      dockerfile: ./compose/production/django/Dockerfile
    image: my_website_production_django
    env_file:
      - ./.envs/.production/.django
      - ./.envs/.production/.postgres
    command: /start

  nginx:
    container_name: 'nginx'
    image: nginx:latest
    ports:
      - "80:80"
      - "443:443"
    volumes: ##The following files are found on AWS EC2 instance.
       - /home/ubuntu/nginx-conf/my.conf:/etc/nginx/conf.d/default.conf
       - /etc/letsencrypt/live/mydomain.de/fullchain.pem:/etc/letsencrypt/live/mydomain.de/fullchain.pem
       - /etc/letsencrypt/live/mydomain.de/privkey.pem:/etc/letsencrypt/live/mydomain.de/privkey.pem
    depends_on:
      - django

  redis:
    image: redis:5.0

С радостью предоставлю дополнительную информацию или код, если необходимо. Поистине отчаянный и благодарный за помощь. Спасибо.