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),])
执行结果
结合这个机制,你可以在一个应用上绑定多个域名及子域名泛域名的多站部署。更易于管理!
相关推荐
-
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
随机推荐
- jquery鼠标悬停导航下划线滑出效果
- java实现jdbc批量插入数据
- AJAX实现瀑布流布局
- DOMAssitant最新版 DOMAssistant 2.5发布
- ObjectInputStream 和 ObjectOutputStream 介绍_动力节点Java学院整理
- 滑轮滚动到页面底部ajax加载数据配合jsonp实现探讨
- 详解JavaScript的表达式与运算符
- 详解Python操作RabbitMQ服务器消息队列的远程结果返回
- 前端必学之PHP语法基础
- SQL 四种连接-左外连接、右外连接、内连接、全连接详解
- sql 服务器知识
- 网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
- C++中关于委派(Delegates)的实现示例
- android通过google api获取天气信息示例
- Android 实现沉浸式状态栏的方法
- Android 自动判断是电话,网址,EMAIL方法之Linkify的使用
- vue页面跳转后返回原页面初始位置方法
- 为什么继续选择DELPHI(即将逝去的Delphi前景在何方)
- Thinkphp5.0框架视图view的模板布局用法分析
- oracle 使用rownum的三种分页方式