【问题标题】:Standalone Python web server and/or nginx独立的 Python Web 服务器和/或 nginx
【发布时间】:2011-12-27 19:45:36
【问题描述】:

所以我已经阅读了一些关于 Python Web 框架(或服务器?)的资料,主要是 TornadoBottle,但也有 FAPWS3,但仍然存在一些灰色区域。

首先,这三个 Web 框架都被称为速度很快,但它们都包含一个用 Python 编写的 Web 服务器(FAPWS3 除外),它应该放在 nginx/Apache 后面。这不是降低性能吗?我的意思是,我们知道 Python 比 C 慢得多,为什么不只使用 nginx,或者最坏的情况,只使用包含的 Python Web 服务器?

【问题讨论】:

  • 你为什么要把网络服务器放在另一个后面?
  • @IgnacioVazquez-Abrams 这是问题的一部分。
  • 您声称它们“应该”放在另一个 Web 服务器之后,但您没有为此提供任何理由或证据。
  • 应用程序服务器在生成响应(甚至是静态材料)方面通常很慢。一个常见的设置是在一堆应用服务器前面有一个快速的 HTTP 服务器。此外,应用服务器缺少 Apache 或 nginx 等 http 服务器的许多额外功能。

标签: python nginx webserver tornado bottle


【解决方案1】:

首先,Tornado 和 FAPWS3 是 Web 服务器,而 Bottle 是一个 Web 框架。这些属于完全不同的类别。

Web 框架通常作为WSGI 服务器在 HTTP(“web”)代理后面运行。大多数框架中包含的 HTTP 服务器仅用于快速开发和部署,以及在效率不重要的站点上轻松部署。

这个想法基本上是 HTTP 服务器(Apache/Lighttpd/Nginx/Tornado/FAPWS3 等)非常擅长理解 HTTP 并从磁盘提供静态文件。另一方面,动态内容是由 Python 服务器使用诸如 Bottle/Flask/web.py/Pylons/etc 之类的 Web 框架生成的。然后由 Web 框架生成的文档通过 WSGI 发送回 HTTP 服务器,放入 HTTP 响应并发送到客户端。

【讨论】:

  • 谢谢!当您说动态内容是由 Python 服务器使用框架生成时,框架直接通过 WSGI 发送响应而不是运行 Python 服务器会更快吗?还是 WSGI 的工作方式?
  • @seriousdev:WSGI 没有指定 WSGI 应用程序是如何运行的。控制它的是 WSGI 容器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多