Локальный домен для django через nginx-прокси в докере - PullRequest
0 голосов
/ 10 апреля 2019

Я использую графический API-интерфейс django GraphQL в док-контейнере, доступном через порт 8080. Я также настроил пакет django-hosts для поддоменов.Теперь я хочу, чтобы они были доступны на местном уровне.Это прекрасно работает, когда я добавляю каждый поддомен в мой файл hosts в Windows следующим образом:

127.0.0.1 www.mysite.local
127.0.0.1 api.mysite.local 

И когда я звоню, например, api.mysite.local:8080.В этом случае мне нужно было бы добавить каждый поддомен в мой файл hosts, по этой причине я смотрел на nginx-proxy .Итак, мой файл hosts теперь содержит:

127.0.0.1 mysite.local

Чтобы убедиться, что он работает, я попробовал его на простой статической веб-странице, например:

version: '3.7'

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    ports:
      - "80:8080"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  web:
    image: nginx
    volumes:
      - ./html:/usr/share/nginx/html
    ports:
      - "8080:80"
    environment:
      - VIRTUAL_HOST=mysite.local
      - NGINX_PORT=80

Это прекрасно работает, но при этомдля моего приложения django это не так:

version: '3.7'

services:
  django:
    build:
      context: .
      dockerfile: Dockerfile
    working_dir: /app
    environment:
      - PYTHONUNBUFFERED=1
      - VIRTUAL_HOST=*.mysite.local
      - VIRTUAL_PROTO=uwsgi
    ports:
      - 8080:8080
...

Поэтому я добавил подстановочный флаг, чтобы прокси-сервер nginx мог обрабатывать субдомены django.Домен http://api.mysite.local не существует.Чего мне не хватает?

...