gpt4 book ai didi

webserver - Flask内置Web服务器有哪些限制

转载 作者:行者123 更新时间:2023-12-02 23:30:53 25 4
gpt4 key购买 nike

我是网络服务器管理方面的新手。我多次读到 Flask 内置 Web 服务器不是为“生产”而设计的,而必须仅用于测试和调试...

但是,如果我的应用程序只涉及 1000 个偶尔向服务器发送数据的用户怎么办?

如果它有效,我什么时候需要费心配置更复杂的 Web 服务器? (我正在寻找近似指标)。

简而言之,我很想知道内置 Web 服务器可以做什么(具有大约阈值)以及不能做什么。

非常感谢!

最佳答案

这个问题没有一个正确的答案,但请记住以下几点:

通过适当的水平扩展,您很可能可以永远扩展调试服务器的使用。您何时需要开始扩展(或切换到使用“真正的”网络服务器)还取决于您托管的环境、用户的期望等。

您可能遇到的主要问题是服务器是单线程的。这意味着它将一次连续地处理每个请求。这意味着,如果您尝试处理多个请求(包括网站图标、图像、CSS 和 Javascript 文件等静态项目),则请求将需要更长的时间。如果任何给定的请求恰好需要很长时间(例如 20 秒),那么您的整个应用程序在这段时间内(20 秒)没有响应。当然,这只是默认设置:您可以增加线程计数(或在其他进程中处理请求),这可能会缓解一些问题。但同样,在“高”负载下它仍然可能很慢。什么被认为是“高”负载将取决于您的应用程序和最大可接受响应时间的期望。

另一个问题是安全性:如果您非常关心安全性(不仅是应用程序本身数据的安全性,还包括运行它的盒子的安全性),那么您不应该使用开发服务器。它还没有准备好承受任何形式的攻击。<​​/p>

最后,开发服务器可能会彻底失败。它并不是为长期运行的流程(数天、数周、数月)而设计的,因此还没有经过良好的测试来以这种方式工作。

所以,是的,它有局限性。是的,您仍然可以在生产中使用它。是的,我仍然建议使用“真正的”网络服务器。如果您不喜欢需要安装 Apache 或 Nginx 之类的东西,您仍然可以使用一个解决方案,该解决方案仍然像“运行 python 脚本”一样简单,方法是使用 WSGI Standalone servers 中的一些内容。 ,它可以运行一个设计用于生产的服务器,就像在命令行中运行 python run_app.py 一样简单。您通常只需要创建一个 4-5 行的 python 脚本来导入和创建服务器对象,将其指向您的 Flask app,然后运行它。

gunicorn 可以仅在命令行上使用以下命令来运行,不需要额外的脚本:

gunicorn myproject:app

...其中“myproject”是包含 app Flask 对象的 Python 包。请记住,gunicorn 的开发人员之一可能会建议不要采用这种方法。请参阅https://serverfault.com/questions/331256/why-do-i-need-nginx-and-something-like-gunicorn .

关于webserver - Flask内置Web服务器有哪些限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20843486/

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