【发布时间】:2013-02-24 23:10:37
【问题描述】:
我从 Web 开发开始。我正在尝试使用 Instagram API 和 Django 开发和 webapp。我看到很多人使用 Tornado Web Server 进行实时订阅。所以我使用 Webfaction 作为主机并找到了这段代码,所以我可以用 Tornado Web Server 提供的“WSGI 容器”来包装我的 Django 项目:
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”,我希望能够通过 Tornado 接收。
【问题讨论】:
-
你的网络派系盒子上运行的主要网络服务器是什么?如果是 apache,您可以添加代理指令以将请求重定向到 mywebsite.com/hello-tornado 到 localhost:8080/hello-tornado (httpd.apache.org/docs/2.2/mod/mod_proxy.html)
-
我发现是Apache2,我必须在“httpd.conf”中配置这个吗?
-
是的,您需要启用 mod_proxy 并在那里添加相关的 proxypass 指令。
标签: python django tornado instagram webfaction