【问题标题】:How does the Flask-Gunicorn-Nginx setup works under the hood?Flask-Gunicorn-Nginx 设置在后台是如何工作的?
【发布时间】:2017-05-12 15:15:55
【问题描述】:

我想知道请求究竟是如何处理的,我的意思是,我认为它是这样的:

  • Nginx 收到请求,根据配置进行初始处理,传递给 Gunicorn

  • Gunicorn 接收到它,并使用请求数据启动 Flask 应用实例

  • Flask 应用程序接收请求数据,并执行其编程的工作

是这样的吗?每次请求都会启动 Flask 应用的新实例吗?

【问题讨论】:

    标签: python python-3.x nginx gunicorn


    【解决方案1】:

    不完全是。基本上flask 是webapp,它在gunicorn 启动时被加载。

    此时,flask 应用程序已启动并运行,gunicorn 本身可以通过在其 python 进程中将请求发送到 flask 应用程序来响应请求(即没有网络流量)。

    Nginx 位于 gunicorn 之上,并代理客户端和 gunicorn 之间的请求,因为 gunicorn 不是 Web 服务器。

    所以 nginx -> gunicorn -> flask(由 gunicorn 自己加载)

    当 gunicorn 启动时,它会自行加载和初始化烧瓶应用程序。对每个请求都这样做会非常慢。

    Nginx 只是代理到 gunicorn 的监听端口。它本身不会加载 Flask 应用程序,它实际上是一个符合 WSGI 标准的 Python webapp。

    【讨论】:

    • 感谢您的宝贵时间。您能否详细说明 Gunicorn 在此设置上的工作原理?
    • 您到底有什么问题?一般来说,它的工作原理如上。
    猜你喜欢
    • 2016-05-06
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多