2013-02-24 1 views
2

Я начинаю с веб-разработки. Я пытаюсь разработать и webapp, используя API Instagram и Django. Я смотрел, что многие люди используют Tornado Web Server для подписчиков в режиме реального времени. Поэтому я использую Webfaction в качестве хозяина и нашел этот код, так что я могу обернуть мой проект Django с «WSGI контейнер», который Tornado Web Server обеспечивает:Веб-сервер Tornado в webfaction

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 и каждый раз Я пытаюсь получить доступ к «http://mywebsite.com/hello-tornado/», похоже, не работает. Я знаю, что я запускаю этот веб-сервер Tornado на этом порту, но не знаю, как получить доступ из браузера или что-то в этом роде. Что я здесь делаю неправильно? Спасибо за вашу помощь и терпение. Будет кибер пять на каждый ответ.

EDIT: То, что я действительно пытаюсь сделать, это то, что я хочу получать все звонки из подписки, которые я делаю с помощью API подписки Instagram RealTime через Tornado, потому что у меня есть обратный 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) –

+0

Я обнаружил, что это Apache2, мне нужно настроить это в «httpd.conf»? –

+0

Да, вам нужно включить mod_proxy и добавить туда соответствующие директивы proxypass. –

ответ

2

Вы запускаете сервер, на порту 8080, веб-браузеры используют порт 80 по умолчанию, можно использовать: http://mywebsite.com:8080/hello-tornado

, если вы хотите использовать порт 80 и у вас уже есть веб-сервер, работающий в поле, вы можете попробовать после предложения Ali-Akber Saifee или запускать приложение WSGI непосредственно с сервера, используя что-то вроде mod_python (http://www.modpython.org), вы потеряете возможность запуска кода Tornado, но Django будет работать.

+0

Определенно это сработало, спасибо, ребята. Cyber ​​HIGH FIVE для обоих. –

0

Необходимо создать пользовательское приложение (прослушивание порта), отметить порт, назначенный вашему приложению, а затем настроить торнадо для обслуживания на этом порту: http_server.listen (мой порт) Вы также можете избежать торнадо и начать напрямую, установив приложение django.

 Смежные вопросы

  • Нет связанных вопросов^_^