Nginx не может передать прокси-сервер в контейнер Django docker

#django #docker #nginx

#django #docker #nginx

Вопрос:

Я запускаю свое приложение Django в docker-compose и открываю порт 8000. У меня установлен Nginx на виртуальной машине без docker, и я хочу, чтобы он перенаправлял запросы в мое приложение Django, я пытался использовать сеть хоста в моем docker-compose и создать внешнюю сеть, но ничего не сработало, и я всегда получаю 502 Bad gateway

это мой nginx.conf:

 events {
  worker_connections  4096;  ## Default: 1024
}
http{
     include /etc/nginx/conf.d/*.conf; #includes all files of file type.conf


server {
    listen   80;

    location /static/ {
        autoindex on;
        alias   /var/lib/docker/volumes/app1_django-static;
    }

    location /media/ {
        autoindex on;
        alias   /var/lib/docker/volumes/app1_django-media;
    }

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;

    }
    #For favicon
    location  /favicon.ico {
        alias /code/assets/favicon.ico;
    }

    # Error pages
    error_page 404 /404.html;
    location = /404.html {
        root /code/templates/;
    }
}

}
  

и это мой файл docker-compose:

 version: "3.2"
services:
  web:
    network_mode: host
    image: nggyapp/newsapp:1.0.2
    restart: always
    ports:
      - "8000:8000"
    volumes:
      - type: volume
        source: django-static
        target: /code/static
      - type: volume
        source: django-media
        target: /code/media
    environment:
      - "DEBUG_MODE=False"
      - "DB_HOST=.."
      - "DB_PORT=5432"
      - "DB_NAME=db"
      - "DB_USERNAME=.."
      - "DB_PASSWORD=.."
volumes:
  django-static:
  django-media:
  

Комментарии:

1. Можете ли вы curl http://localhost:8000/ со своей виртуальной машины?

2. да, когда я выполняю curl localhost: 8000 ; я получаю HTML-шаблон