Я использую графический 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
не существует.Чего мне не хватает?