Как запустить бутылку + Торнадо + ССЛ (https) + Spdy

Я использую Python Framework бутылку с торнадо веб-сервера. Вот мой init.py:

import bottle
import os

# Init application
bottle.run(host="127.0.0.1", app=app, port=int(os.environ.get("PORT", 5000)), server='tornado')
  • Как сделать соединение через HTTPS?

Я читал эту статью http://dgtool.blogspot.com/2011/12/ssl-encryption-in-python-bottle.html но она о сервере CherryPy.


  • Можно ли использовать SPDY с Торнадо? Как? (Я нашел TornadoSPDY на GitHub, но нет никаких объяснений, как его использовать)

Любая помощь приветствуется

1 ответ

Лучше всего использовать прокси-сервер переднего плана, такой как nginx, haproxy или apache. Конфигурирование торнадо с помощью ssl чрезвычайно медленное, оно замедляет торнадо до ползания до тех пор, пока оно не станет полностью безразличным при минимальных посещениях. Я искал везде, чтобы получить приличную скорость в трафике ssl, используя торнадо напрямую, но не нашел ни одного. Кроме того, неплохо использовать интерфейсный сервер.

Но используя apache f.ex. в качестве внешнего прокси я приблизился к родной скорости не-ssl.

Но настроить торнадо с помощью ssl просто:

def main():
    handlers = [
        (r"/", HomeHandler),
    ]
    settings = dict(
       blog_title=u"Tornado Blog",
        template_path=os.path.join(os.path.dirname(__file__), "templates"),
        static_path=os.path.join(os.path.dirname(__file__), "static"),
        cookie_secret="__TODO:_GENERATE_YOUR_OWN_RANDOM_VALUE_HERE__",
        debug=True,
        certfile = os.path.join("certs/server.crt"),
        keyfile = os.path.join("certs/server.key"),
        ssl_options = {
            "certfile" : os.path.join("certs/server.crt"),
            "keyfile" : os.path.join("certs/server.key"),
        },
    )
    tornado.options.parse_command_line()
    http_server = tornado.httpserver.HTTPServer(Application())
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

main()
Другие вопросы по тегам