现在我正在检查WSGI以及如何制作“自己动手”的框架。但我对某些事情有点好奇。当我8个月前进入该项目时,我们使用了一个Web服务器,但我记得在网上也有一个“Web服务器”组件。
该组件是Tornado Web Server,另一个服务器是nginx。现在,一个服务器与另一个服务器之间的区别是什么?
如果组件(Tornado或其他组件)不是我需要部署的唯一东西,我还需要什么?
答案 0 :(得分:2)
澄清:
Tornado是一个Python Web框架和异步网络库。
这是他们自己的定义,而不是我的定义。 (https://pypi.python.org/pypi/tornado)
Tornado也可以充当Web服务器。一些Python Web开发框架并不真正起到Web服务器的作用 - 它们需要被引导到另一个库以进行开发工作。其他人可以作为Web服务器运行,但不推荐它 - 它们的目的是编写代码,而不是构建代码。
如果您倾向于这样做,您可以直接为龙卷风提供服务。大多数人 - 包括Tornado开发团队 - 通过将Tornado置于nginx后面,并使用nginx进行负载平衡和提供静态内容,已经看到了更好的性能。 http://www.tornadoweb.org/en/stable/overview.html?highlight=nginx
将WSGI应用程序部署到Internet有许多不同的方法。其中一些包括:
还有其他方法可以使用gunicorn,eventlet,twisted和无数其他网络或Web服务库来部署WSGI应用程序。
回答你的问题:
在您参与的项目中,nginx作为面向公众的Web服务器运行。 Tornado(很可能)既可以作为Web框架,也可以作为私有Web服务器。
答案 1 :(得分:1)
Xanathos,您提到的组件Tornado是一个用于处理极大量同时连接的Web服务器。它基于Twisted Python构建,如果您还是初学者,我不建议使用它。我可能会建议您查看Python Werkzeug,因为它会为您提供对WSGI的良好介绍。
编辑: 如果您想要一个非常轻松的框架,您可能也会对Flask
感兴趣答案 2 :(得分:1)
Tornado是一个供Python Web应用程序使用的Web服务器。
nginx是一种更通用的Web服务器,您通常将其用作其他Web服务器的前端,以进行虚拟主机或其他代理。它主要与Apache竞争。
所以他们都是网络服务器,但完全不同。