2011-05-27 91 views
0

如何監聽Tornado Web服務器上的連接,而非來自本地網絡?默認它只偵聽來自本地主機的連接。我已經嘗試從Django的技巧來啓動它在地址0.0.0.0監聽,但這不起作用。作爲普通服務器的龍捲風

一些簡單的代碼: 服務器= tornado.httpserver.HTTPServer(應用程序) server.listen(8000, '0.0.0.0')

回答

6

默認龍捲風的httpserver將監聽指定的端口對所有在網接口(IP地址)。所以,通過端口只有應該可以正常工作。

你還需要確保該服務器使用來啓動ioloop實例:

http_server = tornado.httpserver.HTTPServer(application) 
http_server.listen(8000) 
tornado.ioloop.IOLoop.instance().start() 

tornado docs都非常好。

+0

所以現在我不知道。我試圖運行項目[FemHub在線實驗室](https://github.com/certik/femhub-online-lab)作爲服務來訪問其他計算機(最重要的是核心),但是當我可以訪問從本地機器(本地主機,局域網IP和廣域網IP,我已轉發端口),我沒有問題,但是當我嘗試從虛擬機或我的服務器連接我無法訪問。即使我修改了源添加缺少的地址parm。 – zwierzak 2011-05-27 21:50:48

+0

只做了一個簡短的介紹,但在我看來,該應用_does_配置了tornado HTTPServer實例以偵聽所有接口。見https://github.com/certik/femhub-online-lab/blob/master/onlinelab/core/runtime.py#L202,沒有地址參數被傳遞。 – 2011-05-27 21:56:54

+0

是的,我創建了這個,根據你的話是應該工作,但它沒有。我不知道。我可以使用的解決方案是以後端和前端啓動龍捲風。 nginix作爲主要的網絡服務器。這應該以所有限制結束。 – zwierzak 2011-05-27 21:59:34

4

我在嘗試診斷類似問題時發現此問題(在計算機A上運行的龍捲風服務器,無法從計算機B訪問)。

我終於明白了,我需要在計算機A的防火牆上打開端口。

+0

哈哈哈哈是的!這是讓我們絆倒的小事情。 – mareoraft 2014-12-07 22:45:54