澄清:
Tornado 是一个 Python Web 框架和异步网络库。
这是他们自己的定义,不是我的。(https://pypi.python.org/pypi/tornado)
Tornado 也可以用作 Web 服务器。一些 Python Web 开发框架并不能真正用作 Web 服务器——它们需要引导到另一个库来进行开发工作。其他人可以用作 Web 服务器,但不推荐使用它 - 它们旨在编写代码,而不是构建代码。
如果您愿意这样做,您可以直接从 Tornado 提供所有服务。大多数人——包括 Tornado 开发团队——通过将 Tornado 置于 nginx 之后,并使用 nginx 进行负载平衡和提供静态内容,已经看到了更好的性能。 http://www.tornadoweb.org/en/stable/overview.html?highlight=nginx
将 WSGI 应用程序部署到 Internet 有许多不同的方法。其中一些包括:
- 直接在port80上部署app
- 使用 nginx/apache 作为公共负载均衡器:
- 代理连接到在本地端口上运行的应用程序
- 在 uwsgi 下运行应用程序,配置公共负载均衡器以代理对 uwsgi 的请求
还有其他方法可以使用 gunicorn、eventlet、twisted 和无数其他网络或 Web 服务库来部署 WSGI 应用程序。
要回答您的问题:
在您从事的项目中,nginx 充当面向公众的 Web 服务器。Tornado(很可能)既可以用作 Web 框架,也可以用作私有 Web 服务器。