【问题标题】:Why use nginx to deploy tornado instead of its built-in server?为什么使用 nginx 来部署 tornado 而不是它的内置服务器?
【发布时间】:2014-04-30 17:06:56
【问题描述】:

我发现我们可以通过触发 python main.py 之类的东西来运行 tornado 应用程序。但是其他人都说用 nginx 部署龙卷风。有什么好处?我知道这有点傻,但我真的很困惑。

【问题讨论】:

    标签: nginx tornado


    【解决方案1】:

    请参阅 Tornado 文档中有关 Nginx 的说明:

    http://tornado.readthedocs.org/en/stable/guide/running.html

    由于一个 Tornado 进程只能利用一个 CPU 内核(编辑: 请参阅 updated docs 了解有关此的开发),使用 Nginx 对多个 Tornado 进程进行负载平衡以使用多个内核 此外,Nginx 可能是比 Tornado 更高效的静态文件处理程序。

    【讨论】:

    • 谢谢戴维斯,但是我们使用亚马逊负载均衡服务,所以我们可以使用内置服务器的 tornado 进行生产部署,对吗?
    • 我不熟悉亚马逊的负载均衡器。但是,如果您要实现与 Nginx 相同的目标——每个内核运行一个 Tornado 进程,并且避免使用 Tornado 来提供静态文件——那很好。
    • 负载均衡器只是通过计算哪个服务器最接近请求的客户端来将负载分配到不同的机器。是的,我们使用 CDN 提供静态内容。
    • 在这种情况下,您可能仍希望在每台机器上运行 Nginx 以平衡多个 Tornado 进程之间的负载。在多核机器上运行的单个 Tornado 进程没有充分利用机器的处理能力。
    • @A.JesseJiryuDavis 您可以在不运行 nginx 的情况下在多个内核上运行 Tornado:“Tornado 包含一个内置的多进程模式,可以同时启动多个进程。这需要对标准 main 稍作改动函数”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2018-10-08
    • 2017-03-06
    • 2016-02-09
    相关资源
    最近更新 更多