Gunicorn默认是否提供Flask静态文件?

时间:2019-11-27 14:39:56

标签: docker nginx flask static docker-compose

难以理解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:


0 个答案:

没有答案