难以理解Gunicorn如何提供我的静态文件。即使NGINX不在运行,我也没有设置路由/函数来提供静态文件,但仍在为他们服务...?
我正在从docker-compose运行Flask应用。我试图将Nginx配置为充当反向代理,以将请求转发到Gunicorn并提供静态文件。但是,经过大量故障排除后,我无法将其转发给请求。我只能看到localhost:80,而localhost:80则映射到nginx:80,后者正在监听zigweb:8000。我在主机5000、1337等主机上尝试了两个不同的映射端口,但没有骰子。
仅当我在zigweb(烧瓶应用程序)上映射了端口8000:8000时,我的Flask应用程序才能运行,因此我可以直接连接至gunicorn。奇怪的是,当我现在以这种方式连接到localhost:8000时,即使我确实将NGINX从docker-compose中拉出了,还是提供了静态IS服务?
我已经尝试杀死所有其他docker容器/映像,但是感觉有些问题了?如果我没有告诉Flask / Gunicorn这样做,那么Gunicorn如何提供静态文件?
编辑1
当我运行docker container ls
时,我没有找回NGINX容器,并且可以确认当我进入localhost:8000时,我正在查看我的Web应用程序,并且正在提供静态CSS。
此链接有效: http://127.0.0.1:8000/static/css/style.css
编辑2
我应该添加-不久前我玩过Fast API docker。我安装了它,它是一些庞大的docker文件。每隔一段时间,我运行docker-compose后,如果我转到localhost / ap或http://localhost/login,我将获得Fast API登录页面。我绝对不知道该从何处以及从何处得到服务。
是否存在未检测到的神秘NGINX docker容器运行?我该如何杀死它? 我在Windows 10上。
dc9aac2902b6 zig-dock_zigweb "/usr/local/bin/guni…" About a minute ago Up About a minute 0.0.0.0:8000->8000/tcp zig-dock_zigweb_1
76f8d8ed7f23 postgres:11 "docker-entrypoint.s…" 37 minutes ago Up About a minute 0.0.0.0:5432->5432/tcp zig-dock_postgres_1
85fab7516d9a zig-dock_zigbot "python main.py" 37 minutes ago Up About a minute 80/tcp zig-dock_zigbot_1
d35851c2ae20 redis "docker-entrypoint.s…" 37 minutes ago Up About a minute 6379/tcp, 0.0.0.0:6739->6739/tcp zig-dock_redis_db_1
docker-compose.yml
version: '3'
services:
zigweb:
restart: always
build: ./zigweb
ports:
- "8000:8000"
links:
- postgres:postgres
volumes:
- web-data:/usr/src/zigweb/app/static
env_file:
- zigweb/.envdocker
command: /usr/local/bin/gunicorn -w 2 -b :8000 app:app
zigbot:
restart: always
build: ./zigbot
expose:
- "80"
env_file:
- zigbot/.envdocker
command: "python main.py"
data:
image: postgres:11
volumes:
- db-data:/var/lib/postgresql/data
command: "true"
postgres:
restart: always
image: postgres:11
volumes:
- db-data:/var/lib/postgresql/data
ports:
- "5432:5432"
command: postgres -c listen_addresses='*'
redis_db:
restart: always
image: redis
command: ["redis-server", "--appendonly", "yes"]
volumes:
- reddis-data:/data
ports:
- "6739:6739"
volumes:
db-data:
web-data:
reddis-data: