Tornado伺服器中繫結網域名稱 虛擬主機的方法

2022-09-28 10:30:08 字數 1665 閱讀 1840

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(towww.cppcns.comrnado.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伺服器中繫結網域名稱、虛擬主機的方法

本文位址:

阿里雲伺服器怎麼繫結網域名稱

以下配置的路徑以阿里雲提供的標準環境路徑為準,如果您另行安裝,請根據實際安裝路徑配置。1 登入您的linux雲主機,進入web伺服器配置資料夾 執行命令 cd aliyun webserver apache2.2.15 conf 2 備份web伺服器配置檔案 執行命令 cp httpd.conf h...

阿里雲伺服器搭建之繫結多個網域名稱

前面講了阿里雲伺服器環境的搭建,本章對於搭建自己的 非常有幫助,可以為自己的伺服器繫結多個網域名稱,或者將自己的伺服器分享出許多空間給別人當虛擬主機使用。需要修改配置檔案 apache tomcat 7.0.64 conf server.xml和web.xml tomcat的預設埠是8080,而瀏覽...

亞馬遜伺服器上的負載均衡繫結頂級網域名稱

亞馬遜伺服器可以繫結二級網域名稱,包括www.也可以繫結,直接在cname上指定亞馬遜的public dns即可。但是 像 abc.com 這樣的網域名稱是沒法繫結的,需要用到亞馬遜的route 53伺服器,整個dns 伺服器都得放到亞馬遜上。以下是介紹繫結網域名稱的整個過程。1.create a ...