所以我阅读了一些有关 Python 网络框架(或服务器?)的文章,主要是 Tornado和 Bottle还有FAPWS3 , 还有一些灰色地带。
首先,这三个web框架都号称速度很快,但它们都包含一个用Python编写的web服务器(FAPWS3除外),应该放在nginx/Apache之后。这不是降低性能吗?我的意思是,我们知道 Python 比 C 慢得多,为什么不只使用 nginx,或者在最坏的情况下,只使用包含的 Python Web 服务器?
最佳答案
首先,Tornado 和 FAPWS3 是 Web 服务器,而 Bottle 是 Web 框架。这些属于完全不同的类别。
Web 框架通常作为 WSGI 运行。 HTTP(“网络”)代理后面的服务器。大多数框架中包含的 HTTP 服务器只是为了快速开发和部署,以及在不注重效率的站点上轻松部署。
这个想法基本上是 HTTP 服务器(Apache/Lighttpd/Nginx/Tornado/FAPWS3 等)非常擅长理解 HTTP 和从磁盘提供静态文件。另一方面,动态内容由 Python 服务器使用 Bottle/Flask/web.py/Pylons/等 Web 框架生成。 Web 框架生成的文档然后通过 WSGI 发送回 HTTP 服务器,放入 HTTP 响应并发送给客户端。
关于python - 独立的 Python Web 服务器和/或 nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8107986/