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

执行结果

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

(0)

相关推荐

  • tornado捕获和处理404错误的方法

    Tornado 文档中提到但是这样只能捕获到handlers中列出的路径请求中的错误. 如果只定义了(r"/hello", HelloHandler) 一条规则,那么只能捕获到 /hello/other,这样的未定义路径请求,而像/he./helloworld./he/other这样的会直接显示Tornado默认的404错误页面,而不会显示自定义的错误页面. 解决方法很简单只需要在路由规则的最后加一条(r".*", BaseHandler),用于捕获未被其他规则捕获

  • python为tornado添加recaptcha验证码功能

    复制代码 代码如下: from urllib.request import urlopen    from urllib.parse import urlencode    import tornado.httpserver    import tornado.ioloop    import tornado.web #获取key: https://www.google.com/recaptcha/whyrecaptcha    publickey = '填入你的 public key'   

  • 高性能web服务器框架Tornado简单实现restful接口及开发实例

    有个朋友让我搞搞tornado框架,说实话,这个框架我用的不多... 我就把自己的一些个运维研发相关的例子,分享给大家. 怎么安装tornado,我想大家都懂. pip install tornado 再来说说他的一些个模块,官网有介绍的.我这里再啰嗦的复读机一下,里面掺夹我的理解. 主要模块 web - FriendFeed 使用的基础 Web 框架,包含了 Tornado 的大多数重要的功能,反正你进入就对了. escape - XHTML, JSON, URL 的编码/解码方法 datab

  • Tornado Web服务器多进程启动的2个方法

    一.Tornado简介 Tornado 是 FriendFeed 的 Web 服务器及其常用工具的开源版本.Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个理想框架. 二.多进程启动方法 正常启动方法: 复制代码 代码如下: server = HTTPServer(app)

  • Python(Tornado)模拟登录小米抢手机

    今天看到同事参与小米的抢购,几经数个星期的尝试,终于抢到了一台小米电视--看了一下小米的抢购流程,似乎可以用程序可破.于是想写点东西玩玩(你懂的--),第一步肯定是先得模拟登录小米帐号,当练手吧.用 Python 来实现吧,由于是写一个Web应用,那么框架就选 Tornado.首先是定义应用的 URL: 复制代码 代码如下: def main():    tornado.options.parse_command_line()    application = tornado.web.Appli

  • Python Web服务器Tornado使用小结

    首先想说的是它的安全性,这方面确实能让我感受到它的良苦用心.这主要可以分为两点: 一.防范跨站伪造请求(Cross-site request forgery,简称 CSRF 或 XSRF) CSRF 的意思简单来说就是,攻击者伪造真实用户来发送请求. 举例来说,假设某个银行网站有这样的 URL:http://bank.example.com/withdraw?amount=1000000&for=Eve当这个银行网站的用户访问该 URL 时,就会给 Eve 这名用户一百万元.用户当然不会轻易地点

  • tornado框架blog模块分析与使用

    复制代码 代码如下: #!/usr/bin/env python## Copyright 2009 Facebook## Licensed under the Apache License, Version 2.0 (the "License"); you may# not use this file except in compliance with the License. You may obtain# a copy of the License at##     http://

  • Web服务器框架 Tornado简介

    Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务. 高性能web服务器框架Tornado简单实现restful接口及开发实例 http://www.jb51.net/article/52209.htm 要使用它,必须按照以下套件: 1)Python(建议使用Python 2.5 / Python 2.6) 2)Simplejson(建议使用simplejson 2.0.9) 3)cUR

  • 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"

  • Apache实现本地建立泛域名虚拟主机的方法

    本文讲述了Apache实现本地建立泛域名虚拟主机的方法.分享给大家供大家参考,具体如下: 在本地建立泛域名虚拟主机,可以修改Apache的安装目录下的conf/httpd.conf,如下: <VirtualHost *:80> ServerName auciou.com ServerAlias *.auciou.com DocumentRoot F:/site/auciou </VirtualHost> 重启Apache,就可以在本地同时使用auciou.com和xxx.aucio

  • 使用Nginx实现服务器中多容器共存的方法

    背景 有一台腾讯的Linux云主机,在服务器上部署了一个docker(称为ServiceDocker,名称为sign,下同),ServiceDocker内部使用了80.443.3306端口,分别映射到宿主机(云主机)的相同端口(即80.443.3306). ServiceDocker中安装了XAMPP,在此基础上部署了扫码签到小程序的服务器.ServiceDocker的80和443端口分别提供http和https服务,3306为MySQL数据库的端口. ServiceDocker绑定了域名sig

  • Android 中隐藏虚拟按键的方法实例代码

    下面通过一段代码给大家讲解android 隐藏虚拟按键的方法,废话不多说了,大家多多看看代码和注释吧,具体代码如下所示: /** * 隐藏虚拟按键,并且全屏 */ protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getWindow().getDec

  • spring boot2.0图片上传至本地或服务器并配置虚拟路径的方法

    最近写了关于图片上传至本地文件夹或服务器,上传路径到数据库,并在上传时预览图片.使用到的工具如下: 框架:spring boot 2.0 前端模板:thymeleaf 图片预览:js 首先,上传以及预览,js以及<input type="file">,以及预览图片的JS function Img(obj){ var imgFile = obj.files[0]; console.log(imgFile); var img = new Image(); var fr = ne

  • 分享apache http服务器设置虚拟主机的方法

    在apache http服务器上,设置虚拟主机(virtual host)的方法如下 打开apache 安装目录下面的conf/httpd.conf,加入下面两段 复制代码 代码如下: <VirtualHost *:80> ServerName fuwu.jb51.net ServerAlias fuwu.jb51.net fuwu.jb51.net DocumentRoot /fuwu JKMount /* ajp13 –如果你已经做好mod_jk的绑定,可以写上上面这行,这样可以完成一个虚

  • 在Apache服务器上添加虚拟主机功能的方法

    Apache 默认存放网页根目录,是在/var/www/html/下面,也就是说,默认情况下,一个服务器,只能跑一个网站.但是一台性能还算不错的服务器,如果只跑一个网站,岂不是有点浪费?其实 Apache 是支持虚拟主机功能的,以虚拟主机模式可以跑 N 个网站. Apache 开启虚拟主机功能的方式也很简单,以 CentOS 6.3 和 Apache 2.2 为例, 在 /etc/httpd/conf.d/ 目录下创建一个vhost.conf配置文件,内容格式如下: NameVirtualHos

  • Apache常用虚拟主机配置方法解析

    1.apache服务器安装与配置 yum install httpd -y systemctl start httpd &&systemctl enable httpd systemctl stop firewalld setenforce 0 //设置selinux安全级别为premise重启会失效. 本机windows浏览器测试虚拟机ip地址(一定要关闭防火墙),看到以下界面代表启动http成功. 2.apache2配置文件 安装好httpd后会自动生成/etc/httpd目录 主要配

  • 在Nginx服务器中启用SSL的配置方法

    生成证书 可以通过以下步骤生成一个简单的证书: 首先,进入你想创建证书和私钥的目录,例如: $ cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out server.key 1024 创建签名请求的证书(CSR): $ openssl req -new -key server.key -out server.csr 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: $ cp server.ke

  • Windows系统下安装Tomcat服务器和配置虚拟目录的方法

    安装Tomcat和配置环境变量 安装jdk,这个我就不用说了 安装的时候指定安装路径,我指定的是: D:\Program Files\Java\jdk1.6.0_05 3.解压下载的apache-tomcat-5.5.23.zip,   我指定的是D:\Program Files\apache-tomcat-5.5.26 安装完成后,打开"我的电脑"->"系统属性"->"环境变量"在"用户变量" 新建"C

随机推荐