国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Tornado服務器中綁定域名、虛擬主機的方法

2020-02-23 05:41:40
字體:
來源:轉載
供稿:網友

Tornado默認是監聽IP加端口形式,由于Tornado在國內用的人極少,資料更是鱗毛鳳角。下面說說Tornado如何綁定域名。

默認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()

運行后,使用瀏覽器訪問IP+8888端口

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

大喜!不知道為什么,這段在文檔里是沒有的,然后再往下細看,返現默認是有host機制的,并且任何host訪問,截圖

既然這樣,那我們就可以使用域名綁定的方式來運行tornado應用了,而且支持多域名,因為那就是一串正則,在剛才那個例子的基礎上加個域名綁定

代碼如下:
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訪問結果

甚至也可以支持正則匹配,比如讓它也支持www前綴
代碼如下:
application.add_handlers(r"^(www/.)?a/.com$", [(r"/", DomainHandler),])

執行結果

結合這個機制,你可以在一個應用上綁定多個域名及子域名泛域名的多站部署。更易于管理!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭锦后旗| 福建省| 温宿县| 许昌市| 凤城市| 伊宁县| 壤塘县| 东安县| 汤原县| 许昌市| 哈尔滨市| 华宁县| 壶关县| 巴林右旗| 齐齐哈尔市| 彰化市| 萨嘎县| 无极县| 屏东县| 庄河市| 金山区| 高密市| 大渡口区| 曲阜市| 吐鲁番市| 盱眙县| 东阿县| 益阳市| 壤塘县| 泰和县| 石泉县| 辛集市| 根河市| 石阡县| 宝丰县| 耒阳市| 青河县| 怀柔区| 故城县| 育儿| 洪雅县|