Tornado服務(wù)器中綁定域名、虛擬主機(jī)的方法
Tornado默認(rèn)是監(jiān)聽IP加端口形式,由于Tornado在國內(nèi)用的人極少,資料更是鱗毛鳳角。下面說說Tornado如何綁定域名。
默認(rèn)Tornado的hello word是這么來的
import tornado.ioloop
import 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()
運(yùn)行后,使用瀏覽器訪問IP+8888端口

如果你想支持域名訪問,可以用Nginx監(jiān)聽80端口做代理,或者你只有這么一個(gè)應(yīng)用,直接就用Tornado監(jiān)聽80端口免去Nginx這一步,關(guān)鍵是這么干別人使用IP或者域名都能訪問。谷歌了一大堆英文站點(diǎn)也找不到綁定域名教程,反正Tornado源文件也就那一點(diǎn)就翻開看看,里邊怎么寫?結(jié)果看到這么一段話

大喜!不知道為什么,這段在文檔里是沒有的,然后再往下細(xì)看,返現(xiàn)默認(rèn)是有host機(jī)制的,并且任何host訪問,截圖

既然這樣,那我們就可以使用域名綁定的方式來運(yùn)行tornado應(yīng)用了,而且支持多域名,因?yàn)槟蔷褪且淮齽t,在剛才那個(gè)例子的基礎(chǔ)上加個(gè)域名綁定
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
class 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訪問結(jié)果

甚至也可以支持正則匹配,比如讓它也支持www前綴
application.add_handlers(r"^(www\.)?a\.com$", [(r"/", DomainHandler),])
執(zhí)行結(jié)果

結(jié)合這個(gè)機(jī)制,你可以在一個(gè)應(yīng)用上綁定多個(gè)域名及子域名泛域名的多站部署。更易于管理!
相關(guān)文章
Python爬取數(shù)據(jù)并寫入MySQL數(shù)據(jù)庫的實(shí)例
今天小編就為大家分享一篇Python爬取數(shù)據(jù)并寫入MySQL數(shù)據(jù)庫的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
pandas實(shí)現(xiàn)按行遍歷dataframe的方法(itertuples,iterrows)
本文主要介紹了pandas實(shí)現(xiàn)按行遍歷dataframe的方法,主要介紹了兩種itertuples,iterrows,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
python 一個(gè)figure上顯示多個(gè)圖像的實(shí)例
今天小編就為大家分享一篇python 一個(gè)figure上顯示多個(gè)圖像的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
使用Python進(jìn)行數(shù)據(jù)備份的指南大全
利用Python進(jìn)行數(shù)據(jù)備份與恢復(fù)是一種常見的做法,對(duì)于數(shù)據(jù)庫,你可以使用Python中的數(shù)據(jù)庫連接庫(如sqlite3、SQLAlchemy等)連接到數(shù)據(jù)庫,然后執(zhí)行備份操作,將數(shù)據(jù)庫的內(nèi)容保存到一個(gè)備份文件中,本文給大家介紹了使用Python進(jìn)行數(shù)據(jù)備份的指南大全,需要的朋友可以參考下2024-05-05
簡單介紹Python中的try和finally和with方法
這篇文章主要介紹了Python中的try和finally和with方法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
Python 如何手動(dòng)編寫一個(gè)自己的LRU緩存裝飾器的方法實(shí)現(xiàn)
本文主要介紹了Python如何手動(dòng)編寫一個(gè)自己的LRU緩存裝飾器,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12

