源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Tornado服务器中绑定域名、虚拟主机的方法

  • 时间:2021-07-24 18:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Tornado服务器中绑定域名、虚拟主机的方法
Tornado默认是监听IP加端口形式,由于Tornado在国内用的人极少,资料更是鳞毛凤角。下面说说Tornado如何绑定域名。 默认Tornado的hello word是这么来的
[u]复制代码[/u] 代码如下:
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端口 [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100105_0_20180.jpg[/img] 如果你想支持域名访问,可以用Nginx监听80端口做代理,或者你只有这么一个应用,直接就用Tornado监听80端口免去Nginx这一步,关键是这么干别人使用IP或者域名都能访问。谷歌了一大堆英文站点也找不到绑定域名教程,反正Tornado源文件也就那一点就翻开看看,里边怎么写?结果看到这么一段话 [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100105_1_16528.jpg[/img] 大喜!不知道为什么,这段在文档里是没有的,然后再往下细看,返现默认是有host机制的,并且任何host访问,截图 [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100105_2_12939.jpg[/img] 既然这样,那我们就可以使用域名绑定的方式来运行tornado应用了,而且支持多域名,因为那就是一串正则,在刚才那个例子的基础上加个域名绑定
[u]复制代码[/u] 代码如下:
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访问结果 [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100106_3_93136.jpg[/img] 甚至也可以支持正则匹配,比如让它也支持www前缀
[u]复制代码[/u] 代码如下:
application.add_handlers(r"^(www.)?a.com$", [(r"/", DomainHandler),])
执行结果 [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100106_4_29764.jpg[/img] 结合这个机制,你可以在一个应用上绑定多个域名及子域名泛域名的多站部署。更易于管理!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部