У меня есть приложение Flask с настройкой обратного прокси-сервера Nginx с помощью docker-compose. Я могу заставить все работать в одном контейнере без проблем, но мне нужно запустить промежуточные и производственные серверы на одной машине, поэтому я пытаюсь перенести мои настройки в несколько контейнеров с отдельным контейнером nginx-proxy. Настройка обратного прокси-сервера, кажется, будет в порядке, но когда я получаю доступ к приложению с помощью прокси-сервера Flask, возникают некоторые проблемы с запросом. Ниже подробно описаны файлы docker-compose и выходные данные сервера.
NGINX-PROXY docker-compose.yml
version: "3.5"
services:
nginx-proxy:
image: jwilder/nginx-proxy
ports:
- 80:80
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
- proxy
networks:
proxy:
Колба docker-compose.yml
version: '3.5'
services:
# other services defined, not relevant for the issue
data-api:
environment:
FLASK_ENV: development
VIRTUAL_HOST: app.local
build: ./dataAPI
expose:
- 5000
ports:
- 5000:5000
volumes:
- ./dataAPI:/dataAPI
networks:
- nginx_proxy
networks:
nginx_proxy:
external: true
Я добавил строку в /etc/hosts
для app.local
.
Я раскручиваю сначала nginx, затем приложение. Если я пытаюсь получить к нему прямой доступ с помощью 0.0.0.0:5000/staging/data
, запрос обрабатывается без проблем, но если я пытаюсь использовать прокси с app.local/staging/data
, приложение Flask выдает 404:
Колба журнала
data-api_1 | 172.20.0.1 - - [30/May/2019 14:13:29] "GET /staging/data/ HTTP/1.1" 200 -
data-api_1 | 172.20.0.2 - - [30/May/2019 14:13:31] "GET /staging/data/ HTTP/1.1" 404 -