- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是网络服务器管理方面的新手。我多次读到 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/
我正在尝试根据报表类型提取财务报表信息。 让我更详细地解释一下。 我想从 XBRL 实例中提取损益表、 Assets 负债表和现金流量表——尤其是美国公认会计原则。 对我来说,完美的解决方案是在 XM
本文整理了Java中org.apache.xmlrpc.webserver.WebServer.setupServerSocket()方法的一些代码示例,展示了WebServer.setupServe
本文整理了Java中org.apache.xmlrpc.webserver.WebServer.start()方法的一些代码示例,展示了WebServer.start()的具体用法。这些代码示例主要来
本文整理了Java中org.apache.xmlrpc.webserver.WebServer.createServerSocket()方法的一些代码示例,展示了WebServer.createSer
本文整理了Java中org.apache.xmlrpc.webserver.WebServer.getXmlRpcServer()方法的一些代码示例,展示了WebServer.getXmlRpcSer
本文整理了Java中org.apache.xmlrpc.webserver.WebServer.()方法的一些代码示例,展示了WebServer.()的具体用法。这些代码示例主要来源于Github/S
本文整理了Java中org.apache.xmlrpc.webserver.WebServer.log()方法的一些代码示例,展示了WebServer.log()的具体用法。这些代码示例主要来源于Gi
本文整理了Java中org.apache.xmlrpc.webserver.WebServer.newTask()方法的一些代码示例,展示了WebServer.newTask()的具体用法。这些代码示
本文整理了Java中org.apache.xmlrpc.webserver.WebServer.allowConnection()方法的一些代码示例,展示了WebServer.allowConnect
本文整理了Java中org.apache.xmlrpc.webserver.WebServer.newThreadPool()方法的一些代码示例,展示了WebServer.newThreadPool(
我使用 Airflow 已经有一段时间了,它是由一位同事创建的。最近我遇到了一些错误,这需要我更深入地了解如何修复 Airflow 中的某些问题。 我确实理解这三个进程是什么,但我只是不明白运行它们时
这是一个简单的场景: 用户从 Web 应用程序的网页触发某些操作。这个操作很繁重,需要更多时间。 并且在服务器端操作完成之前,用户触发器用一些不同的参数说相同的操作。所以第二个请求的第二个操作也将开始
是否有一些标准的持续时间,爬虫必须在重复命中同一台服务器之间等待,以免使服务器负担过重。 如果没有,任何关于什么是爬虫的良好等待期的建议都可以被认为是礼貌的。 这个值是否也因服务器而异……如果是这样,
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我的网站目前在一台服务器上仍然可以。但是从其他人的经验来看,大流量可能会突然出现,基本上从一台服务器变成 4 台服务器(1 台负载均衡器、2 台 Web 服务器和 1 台用于数据库)。 在发生大流量后
我重新连接到 Freebsd 服务器 [netcat] 并且/tmp 上有一个文件我想下载它但是不能用我的浏览器浏览 那有什么方法可以下载吗?因为我无权访问其他文件夹。只是/tmp 最佳答案 您可以使
我可以知道应用程序服务器和 Web 服务器之间的区别吗?请列出每个例子。 最佳答案 一个'网络服务器 ' 通常是使用 http 提供内容的任何服务器程序。 (或 https )协议(protocol)
我是一名 .NET 开发人员,我已经使用 C# 工作了将近 3.5 年。我想了解 Web 服务器的工作原理,我的意思不是 65,000 英尺的概览。我想了解网络服务器的内部工作原理。 有哪些很好的资源
我的网络服务器不在家里。我在端口80上为其分配了一个地址,例如192.168.1.123。 我了解这正在我的本地网络上运行。如果我转到网络上的另一台计算机并输入服务器的IP地址,则可以看到该服务器。
应用服务器和网络服务器有什么区别? 最佳答案 大多数时候,这些术语“Web 服务器”和“应用程序服务器”可以互换使用。 以下是 Web 服务器和应用程序服务器功能上的一些主要区别: Web 服务器旨在
我是一名优秀的程序员,十分优秀!