Контейнер Nginx не может подключиться к контейнеру Django с файлом docker-compose

В моем контейнере для nginx выводится следующее сообщение об ошибке.

connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.10.1, server: localhost, request: "GET / HTTP/1.1", upstream: "http://192.168.10.2:8000/", host: "127.0.0.1"

.

Я хочу решить эту проблему. В docker-compose определены три сервиса; "dp": PostgreSQL, "web" : Django, и "nginx" :nginx. Эти сервисы соединены в сети.

services:
  db:
   ...some descriptions...

  web:
    ...some descriptions...

    ports:
      - "8000:8000"

    depends_on:
      - db

    networks:
      - backend
      - frontend

 nginx:
    ...some descriptions...
    ports:
      - "80:80"
    depends_on:
      - web

    networks:
      - frontend

...some descriptions...

networks:
  frontend:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.10.0/24
...some descriptions...

"db" и "web" подключены (так как миграции работали). Однако я не могу создать соединение между "web" и "nginx" через сеть "frontend".

Я обновил конфигурационный файл "etc/nginx/nginx.conf", как показано ниже, и команда "nginx -t" выдала такие комментарии;

nginx: синтаксис конфигурационного файла /etc/nginx/nginx.conf в порядке

nginx: проверка конфигурационного файла /etc/nginx/nginx.conf прошла успешно

Я подозреваю, что причиной ошибки является конфигурационный файл, но я не совсем понимаю его.

user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log notice;
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;

    include /etc/nginx/conf.d/*.conf;

    upstream web {
        server web:8000;
    }    

    server {
        listen 80;
        listen [::]:80;

        # server_name _;
        server_name localhost 127.0.0.1;
        root usr/share/nginx/html;
        

        error_page 404 /404.html;
        location = /40x.html {
        }

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

        location /static/ {
            alias /opt/static/; 
        }

        location /media/ {
            alias /opt/media/; 
        }

        location / {
            try_files $uri @proxy_to_web;
        }

        location @proxy_to_web {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;                   
            proxy_redirect off;
            # proxy_set_header X-Forwarded-Proto $scheme;

            proxy_pass http://web;
        }

    }
}

Приложение Django активируется следующей командой. Без nginx оно хорошо работает в среде контейнера docker. Однако nginx не может подключиться к нему.

RUN gunicorn --bind 0.0.0.0:8000 config.settings.wsgi -D

Вернуться на верх