ホームページ  >  記事  >  バックエンド開発  >  Tornadoサーバーでドメイン名と仮想ホストをバインドする方法

Tornadoサーバーでドメイン名と仮想ホストをバインドする方法

WBOY
WBOYオリジナル
2016-06-16 08:42:352214ブラウズ

Tornado はデフォルトで IP プラス ポート モードを監視するように設定されています。中国では Tornado を使用している人が非常に少ないため、情報がまばらです。 Tornado がどのようにドメイン名をバインドするかについて話しましょう。

Tornado のデフォルトの挨拶文は次のとおりです

コードをコピー コードは次のとおりです:

tornado.ioloop をインポート
tornado.web をインポート

class MainHandler(tornado.web.RequestHandler):
Def get(self):
self.write("Hello, world")

application = tornado.web.Application([
(r"/", MainHandler),
])

if __name__ == "__main__":
Application.listen(8888)
Tornado.ioloop.IOLoop.instance().start()

実行後、ブラウザを使用して IP+8888 ポートにアクセスします

ドメイン名アクセスをサポートしたい場合は、Nginx を使用してプロキシとしてポート 80 をリッスンするか、アプリケーションが 1 つしかない場合は、Tornado を使用してポート 80 をリッスンし、Nginx の手順を回避します。他の人が IP またはドメイン名を使用してアクセスできること。たくさんの英語のサイトをググってみましたが、ドメイン名のバインドに関するチュートリアルは見つかりませんでした。とにかく、Tornado のソース ファイルがすべてだったので、それを開いて見てみました。そこでこんな文章を目にしました

とても嬉しいです!理由はわかりませんが、この段落はドキュメントにありません。さらに下を見ると、キャッシュバックにはデフォルトでホスト メカニズムがあり、ホスト アクセスのスクリーンショット

この場合、ドメイン名バインディングを使用して Tornado アプリケーションを実行できます。これは、通常のルールの文字列であるため、複数のドメイン名をサポートしています。先ほどの例に基づいて、ドメイン名バインディングを追加します。

コードをコピー コードは次のとおりです:

tornado.ioloop をインポート
tornado.web をインポート

class MainHandler(tornado.web.RequestHandler):
Def get(self):
self.write("Hello, world")

クラス DomainHandler(tornado.web.RequestHandler):
Def get(self):
self.write("Hello, a.com")


application = tornado.web.Application([
(r"/", MainHandler),
])

application.add_handlers(r"^a.com$", [
(r"/", DomainHandler),
])

if __name__ == "__main__":
Application.listen(8888)
Tornado.ioloop.IOLoop.instance().start()

a.com のアクセス結果

www プレフィックスもサポートするなど、通常のマッチングもサポートできます

コードをコピー コードは次のとおりです:

application.add_handlers(r"^(www.)?a.com$", [(r"/", DomainHandler),])

実行結果

このメカニズムと組み合わせると、複数のドメイン名とサブドメインの汎ドメイン名を単一のアプリケーションにバインドして、マルチサイト展開を行うことができます。管理が簡単になります!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Python の使用法次の記事:Python の使用法