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

 更新时间:2014年08月22日 09:40:47   投稿:junjie  
这篇文章主要介绍了Tornado服务器中绑定域名、虚拟主机的方法,本人查看了Tornado才得的方法,特此分享,需要的朋友可以参考下

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),])

执行结果

结合这个机制,你可以在一个应用上绑定多个域名及子域名泛域名的多站部署。更易于管理!

相关文章

  • Python爬取数据并写入MySQL数据库的实例

    Python爬取数据并写入MySQL数据库的实例

    今天小编就为大家分享一篇Python爬取数据并写入MySQL数据库的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • pandas实现按行遍历dataframe的方法(itertuples,iterrows)

    pandas实现按行遍历dataframe的方法(itertuples,iterrows)

    本文主要介绍了pandas实现按行遍历dataframe的方法,主要介绍了两种itertuples,iterrows,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • python 一个figure上显示多个图像的实例

    python 一个figure上显示多个图像的实例

    今天小编就为大家分享一篇python 一个figure上显示多个图像的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 使用Python进行数据备份的指南大全

    使用Python进行数据备份的指南大全

    利用Python进行数据备份与恢复是一种常见的做法,对于数据库,你可以使用Python中的数据库连接库(如sqlite3、SQLAlchemy等)连接到数据库,然后执行备份操作,将数据库的内容保存到一个备份文件中,本文给大家介绍了使用Python进行数据备份的指南大全,需要的朋友可以参考下
    2024-05-05
  • Python中typing模块与类型注解的使用方法

    Python中typing模块与类型注解的使用方法

    这篇文章主要给大家介绍了关于Python中typing模块与类型注解的使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • 浅谈pycharm的xmx和xms设置方法

    浅谈pycharm的xmx和xms设置方法

    今天小编就为大家分享一篇浅谈pycharm的xmx和xms设置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • PyCharm第一次安装及使用教程

    PyCharm第一次安装及使用教程

    本文通过图文并茂的形式给大家介绍PyCharm第一次安装及使用教程,分步骤通过实际案例给大家操作演示,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 简单介绍Python中的try和finally和with方法

    简单介绍Python中的try和finally和with方法

    这篇文章主要介绍了Python中的try和finally和with方法,是Python学习当中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python 如何手动编写一个自己的LRU缓存装饰器的方法实现

    Python 如何手动编写一个自己的LRU缓存装饰器的方法实现

    本文主要介绍了Python如何手动编写一个自己的LRU缓存装饰器,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 使用Python生成随机密码的示例分享

    使用Python生成随机密码的示例分享

    这篇文章主要介绍了使用Python生成随机密码的示例分享,比如发生一些安全问题时为用户先设置随机密码然后供用户修改的情况下可以用到,需要的朋友可以参考下
    2016-02-02

最新评论