独立Python网络服务器和/或nginx

3 投票
1 回答
5101 浏览
提问于 2025-04-17 06:11

我最近读了一些关于Python网页框架(或者说服务器?)的资料,主要是关于TornadoBottle,还有FAPWS3,不过还有一些地方我不太明白。

首先,这三个网页框架都说很快,但它们都包含一个用Python写的网页服务器(除了FAPWS3),这个服务器通常是放在nginx或Apache后面的。这样不是会降低性能吗?我的意思是,我们知道Python的速度比C慢很多,为什么不直接只用nginx,或者最坏的情况下,只用自带的Python网页服务器呢?

1 个回答

8

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

网络框架通常作为一个WSGI服务器运行在HTTP(也就是“网络”)代理后面。大多数框架里包含的HTTP服务器只是为了快速开发和部署,适合那些对效率要求不高的网站。

简单来说,HTTP服务器(比如Apache、Lighttpd、Nginx、Tornado、FAPWS3等)非常擅长理解HTTP协议,并且能从磁盘上快速提供静态文件。而动态内容则是由使用像Bottle、Flask、web.py、Pylons等框架的Python服务器生成的。网络框架生成的文档会通过WSGI发送回HTTP服务器,放入HTTP响应中,然后再发给客户端。

撰写回答