2013-02-24 132 views
2

我从web开发开始。我正在尝试使用Instagram API和Django开发和webapp。我在看很多人使用Tornado Web Server进行实时订阅。所以我用Webfaction作为主机,发现这个代码,所以我可以换我的Django项目与“WSGI容器”是旋风式Web服务器提供:webfaction中的龙卷风web服务器

import os 
import tornado.httpserver 
import tornado.ioloop 
import tornado.wsgi 
import tornado.web 
import sys 
import django.core.handlers.wsgi 
sys.path.append('/path/to/project') 

class HelloHandler(tornado.web.RequestHandler): 
    def get(self): 
     self.write('Hello from tornado') 

def main(): 
    os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' # path to your settings module 
    wsgi_app = tornado.wsgi.WSGIContainer(django.core.handlers.wsgi.WSGIHandler()) 
    tornado_app = tornado.web.Application(
      [ 
        ('/hello-tornado', HelloHandler), 
        ('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)), 
      ] 
    ) 
    http_server = tornado.httpserver.HTTPServer(tornado_app) 
    http_server.listen(8080) 
    tornado.ioloop.IOLoop.instance().start() 

if __name__ == "__main__": 
    main() 

所以我跑我Webfaction服务器,每次这里面python脚本我尝试访问“http://mywebsite.com/hello-tornado/”似乎不起作用。我知道我正在该端口上运行该Tornado Web服务器,但不知道如何从浏览器访问或者类似的东西。我在这里做错了什么?感谢您的帮助和耐心。每个答案都会网络高五。

编辑:我真的想要做的是,我想接收所有来自我通过Tornado与Instagram实时订阅API订阅的电话,因为我有一个回调URL“http://mysite.com/sub”,我想要能够通过龙卷风接收。

+0

什么是您的webfaction框上运行的主要网络服务器?如果它的apache可以添加一个代理指令来将请求重定向到http://mywebsite.com/hello-tornado到http:// localhost:8080/hello-tornado(http://httpd.apache.org/docs/2.2 /mod/mod_proxy.html) – 2013-02-24 23:17:18

+0

我发现这是Apache2,我必须在“httpd.conf”中配置它吗? – 2013-02-25 00:28:49

+0

是的,你需要启用mod_proxy并在那里添加相关的proxypass指令。 – 2013-02-25 00:32:49

回答

2

您开始在端口8080的服务器,Web浏览器在默认情况下使用端口80,请尝试使用:http://mywebsite.com:8080/hello-tornado

,如果你想使用端口80,你已经在你可以试试箱运行Web服务器按照Ali-Akber Saifee的建议,或者直接从服务器运行WSGI应用程序,使用诸如mod_python(http://www.modpython.org)之类的东西,你将失去运行Tornado代码的能力,但Django可以工作。

+0

绝对有效,谢谢你们。对于两者都是Cyber​​ HIGH FIVE。 – 2013-02-26 23:30:32

0

您必须创建自定义应用程序(侦听端口),记下分配给您的应用程序的端口,然后配置龙卷风以在该端口上提供服务:http_server.listen(我的端口) 您还可以避免龙卷风并启动直接通过安装一个Django应用程序。