【问题标题】:where I host apps developed using tornado webserver我在哪里托管使用 tornado 网络服务器开发的应用程序
【发布时间】:2013-01-11 11:30:02
【问题描述】:

是否有任何托管服务可以托管使用 tornado 开发的简单应用程序。(就像我们在 Google App Engine 中托管一样)。是否可以在 Google App Engine 上托管?。应用程序就像一些学生数据(添加、删除、搜索等)。我使用 python 开发。

提前致谢

【问题讨论】:

    标签: python google-app-engine webserver hosting tornado


    【解决方案1】:

    绝对可以在 App Engine 上托管 Tornado 应用程序;但是,您需要牢记一些注意事项:

    • App Engine 正在通过 WSGI 部署所有内容,这意味着您无法利用 Tornado 的异步功能,前提是 WSGI 在设计上是异步的。如果你能忍受,你需要用WSGIAdapter 包装你的应用程序:

      app = tornado.web.Application(url_list, **server_settings)
      
      if __name__ == '__main__':
          # start the server if run directly
          import tornado.httpserver
          http_server = tornado.httpserver.HTTPServer(app)
          http_server.listen(8080, address='localhost')
          tornado.ioloop.IOLoop.instance().start()
      else:
          # wrap as WSGI
          import tornado.wsgi
          app = tornado.wsgi.WSGIAdapter(app)
      
    • App Engine 要求在您的源代码中提供所有应用特定的库,因此您不能使用 virtualenvs 也不能通过 pip 安装库,并且您的所有模块必须是纯的Python。最好的方法是有一个特殊的目录,不被你的源代码管理跟踪,并用pip install -U -t lib/ -r requirements.txt在本地安装所有东西(假设目录名为lib。当然,你需要让你的代码知道这个目录通过在应用配置中的某处添加:

      sys.path.insert(0, os.path.join(os.path.abspath('.'), 'lib'))
      

    【讨论】:

      【解决方案2】:

      Heroku 是部署 Tornado 驱动的应用程序的好选择。

      这可能是helpful

      【讨论】:

        【解决方案3】:

        在 Heroku,Cedar 堆栈尚不支持 WebSockets 协议。

        【讨论】:

          猜你喜欢
          • 2021-06-11
          • 2014-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-01-18
          • 1970-01-01
          • 2011-05-10
          • 1970-01-01
          相关资源
          最近更新 更多