【发布时间】:2019-05-30 14:28:20
【问题描述】:
我有一个 Flask 应用程序,它使用 docker-compose 设置了 Nginx 反向代理。我可以毫无问题地让所有东西在单个容器中工作,但我需要在同一台机器上启动登台和生产服务器,所以我试图将我的设置迁移到具有单独 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 -
【问题讨论】:
标签: python docker nginx flask docker-compose