gpt4 book ai didi

python - 为什么使用 Nginx 运行 Flask 需要 WSGI 包装器?

转载 作者:行者123 更新时间:2023-12-03 15:35:23 24 4
gpt4 key购买 nike

因此,从 Python/Flask 文档中,他们都建议不要将 Flask Web 服务器作为生产 Web 服务器运行,这是有道理的。我的问题是,我是否能够在 Nginx 服务器上运行我的 Flask 应用程序?为什么互联网上的所有指南都建议将 Flask 包裹在 uWSGI、Tornado 或其他一些 WSGI 服务器上? WSGI 是什么意思? Flask WGSI 不兼容吗?

我特别迷茫因为here ,第一个响应指出:

Apache and Nginx are both HTTP servers.They can serve static files like (.jpg and .html files) or dynamic pages (like a Wordpress blog or forum written in a language like PHP or Python).



然而 this帖子状态:

Nginx is a web server. It serves static files, however it cannot execute and host Python application. uWSGI fills that gap.



我的应用程序由服务器(例如:uWSGI)和另一台服务器(例如:Nginx)处理似乎效率低下。

最佳答案

Nginx 是一个 Web 服务器,它关注的是 Web 服务器的东西,而不是如何运行 Python 程序。 uWSGI 是一个应用服务器,知道如何用 Python(以及现在的其他语言)说 WSGI。 Nginx 和 uWSGI 都使用 uWSGI 协议(protocol),它是一种基于 UNIX 套接字的高效协议(protocol)。

Nginx 处理来自/响应外部世界的 http 请求(可能是负载平衡、缓存等)。您的 Flask 应用程序处理 WSGI 请求/响应。 uWSGI 知道如何启动您的应用程序(可能使用多处理和/或线程)并弥合 HTTP 和 WSGI 之间的差距。

除了 Nginx 之外还有其他 HTTP 服务器,除了 uWSGI 之外还有其他 WSGI 服务器,但它们都使用相同的工作流程:HTTP 服务器传递给 WSGI 服务器,WSGI 服务器管理您的应用程序进程并返回给 HTTP 服务器。

此设置称为 reverse proxy .它允许每个工具做它擅长的事情,而不用关心过程的其他部分。没有什么特别低效的,直到你真正实现大规模。

关于python - 为什么使用 Nginx 运行 Flask 需要 WSGI 包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27010092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com