0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

勉強ノート:Tornado その3

Posted at

Source

Running and Deploying

Tornadoは自身のHTTPサーバを持っていて、他のpython製webフレームワークとデプロイの仕方が異なる。
WSGIの設定をするのではなく、main()関数を書く。

def main():
  app = make_app()
  app.listen(8888)
  IOLoop.current().start()

if __name__ == '__main__':
  main()

注)プロセスごとにOpenできるファイルの上限を/etc/security/limits.confで設定しておく。

マルチプロセスモードで起動したい場合は、main関数を以下のように設定する。

def main():
  app = make_app()
  server = tornado.httpserer.HTTPServer(app)
  server.bind(8888)
  server.start(0)
  IOLoop.current().start()

注)各子プロセスはそれぞれIOLoopをもつ。このように実行するとZeroDowntime updateは難しい。
それぞれのプロセスは別のポートをlistenするようにデプロイするのが良さそう。

Nginxなどの後ろで動かす時

HTTPServerにxheaders=Trueと設定しておく。そうすると、X-Real-IPなどのヘッダでユーザのIPを渡すようになる。

静的ファイル

static_pathをsettingsに追加する。そうすると、TornadoからStaticファイルを配布できる。
ブラウザのキャッシュを使ってパフォーマンスを改善するのに、static_url("images/logo.png")が使える。関数の引数は適当な静的ファイル。

debug mode and automatic reloading

Applicationのコンストラクタでdebug=Trueを設定することでデバッグモードでアプリケーションを起動できる。デバッグモードではオートリロードがONになっていたり、キャッシュが向こうになっていたりする。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?