【发布时间】:2020-04-08 06:53:46
【问题描述】:
我希望使用一个 docker compose 文件运行 2 个烧瓶容器和 1 个 Nginx 容器,但不断收到 404 错误。
尝试了许多教程,但仍然没有成功。
下面是我的 docker compose 文件以及 Nginx.conf 和 Uwsgi 配置。
码头工人撰写:
version: "3.7"
services:
flask:
build: ./flask
container_name: flask
restart: always
image: flask
environment:
- APP_NAME=flask
expose:
- 8080
ports:
- "8080:8080"
flask2:
build: ./flask2
container_name: flask2
restart: always
image: flask2
environment:
- APP_NAME=flask2
expose:
- 8081
ports:
- "8081:8081"
nginx:
build: ./nginx
image: nginx
container_name: nginx
restart: always
ports:
- "80:80"
- "81:81"
depends_on:
- flask
- flask2
nginx.conf
upstream flask_app1 {
server flask:8080;
}
upstream flask_app2 {
server flask2:8081;
}
server {
listen 80;
location /test1 {
uwsgi_pass flask_app1;
}
location /test2 {
uwsgi_pass flask_app2;
}
}
uwsgi:除了端口,两者都相同。
[uwsgi]
wsgi-file = run.py
callable = app
socket = :8081
processes = 4
threads = 2
master = true
chmod-socket = 660
buffer-size = 32768
vacuum = true
die-on-term = true
我在 windows 上使用 docker,我可以在 GUI 中看到 2 个烧瓶应用程序的端口绑定在 8080 和 8081,而 nginx 绑定到端口 80。
不确定还有什么问题。任何帮助都会很棒。
提前致谢。
【问题讨论】:
-
你问的是什么网址?
localhost/task1和localhost/task2?当您询问localhost:8080或localhost:8081时,它有效吗? -
@d0niek 正在寻找 url
locoalhost/test1和localhost/test2。我可以尝试用localhost:8080之类的花盆做广告,但我一无所获。 -
如果 url
localhost:8080不起作用,那么 urllocalhost/task1也不起作用 -
请编辑您的问题以添加 docker-compose 日志。