当前位置: 首页 > 面试题库 >

为什么不应该将Flask与内置服务器一起部署?

澹台景山
2023-03-14
问题内容

为什么建议使用Apache或Nginx部署Flask应用程序?它具有内置服务器,难道不能仅通过运行python app.py并打开防火墙中的正确端口来进行部署吗?


问题答案:

Werkzeug的WSGI服务器不适用于生产。它是在开发过程中提供的便利。它在开发时并未考虑安全性或性能(默认情况下,一次仅处理一个请求)。使用真实的WSGI应用程序服务器(例如uWSGI或Gunicorn)来提高性能,并通过真实的Web服务器(例如Nginx)进行代理以提高性能和安全性。Web服务器擅长排队请求/响应,可以同时提供静态内容和其他内容,并且可以处理SSL。WSGI服务器擅长在整个应用程序中高效地协调多个请求。Werkzeug被设计为WSGI库,而不是Web服务器或WSGI服务器。

该文档直接告诉您不要在生产中使用开发服务器。

您可以在开发过程中使用内置服务器,但应该对生产应用程序使用完整的部署选项。(请勿在生产中使用内置的开发服务器。)

此外,Web服务器以root身份运行(然后具有特权),因此它们可以在标准端口80和443上侦听。您 永远
不应以root身份运行应用程序,因此只能绑定到1024以上的端口,因此用户将不得不知道端口而不是域。



 类似资料:
  • 问题内容: 我是Web服务器管理的新手。我已经多次阅读flask内置Web服务器不是为“生产”而设计的,而只能用于测试和调试… 但是,如果我的应用程序仅接触到偶尔将数据发送到服务器的一千个用户,该怎么办? 如果可以,我什么时候需要打扰更复杂的Web服务器的配置?(我正在寻找近似指标)。 简而言之,我很想找到内置的Web服务器可以做什么(具有大约阈值)和它不能做什么。 非常感谢 ! 问题答案: 这个

  • 我是K8s的新手,所以仍然试图让我的头脑周围的事情。我一直在研究部署,并能够理解它们将有多有用。但是,我不明白为什么它们不支持服务(只支持副本集和豆荚)。

  • 问题内容: 在阅读exploringflask.com时,我了解到最佳实践是使用两个不同的配置文件,一个用于开发,一个用于生产。我不知道是否将密钥放置在开发或生产配置中。 实例文件夹的私有性质使其非常适合用于定义不想在版本控制中公开的键。这些可能包括您应用的秘密密钥或第三方API密钥。 我认为不应共享密钥。我应该将密钥放入开发配置或生产配置中,还是应该为每个配置使用不同的密钥? 问题答案: 将密钥

  • 问题内容: 我想知道什么时候应该包括外部脚本或将它们与html代码内联,以提高性能和简化维护。 一般做法是什么? 真实场景-我有几个需要客户端表单验证的html页面。为此,我使用了所有这些页面中都包含的jQuery插件。但是问题是,我是否: 编写代码位以内联方式配置此脚本? 在所有这些html页面之间共享的一个文件中包含所有位? 将每个位都包含在一个单独的外部文件中,每个html页面一个? 谢谢。

  • 我目前正在尝试学习微服务架构。我一直在尝试开发一个 Spring 启动应用程序。我刚刚在我的应用程序中实现了配置服务器。在我实现配置服务器之前,liquibase 在这些属性上工作正常。 实现后,我的服务没有找到db.changelog-master.xml文件。db.changelog目录在我的服务资源下。我应该如何更改“更改日志”属性?

  • 问题内容: 我已经阅读了文档。但我仍然不确定何时不需要将其设置为。在下面的代码中,如果将其设置为,则根本看不到标题。如果我将其保留为,那么一切都很好。 View调试层次结构中的以下内容将给出警告“ 宽度 和 位置 不明确”。 我以为只要需要修改代码中的任何内容,都必须设置为。 如果您需要删除其所有约束,然后将其设置为,然后添加所需的内容,则可能是更正确的说法,在这种情况下,您需要为所有四个方面添加