Веб-сервер Tornado в webfaction


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

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()

Поэтому я запускаю этот скрипт python внутри моего сервера Webfaction и каждый раз, когда я пытаюсь получить доступ "http://mywebsite.com/hello-tornado/", похоже, не работает. Я знаю, что запускаю этот веб-сервер Tornado на этом порту, но не знаю, как получить доступ из браузера или что-то в этом роде. Что я здесь делаю не так? Спасибо за вашу помощь и терпение. Будет кибер-пять за каждый ответ.

EDIT: на самом деле я хочу получать все звонки от подписок, которые я делаю с помощью API подписки Instagram RealTime через Tornado, для этого я есть URL-адрес обратного вызова "http://mysite.com/sub" и я хочу иметь возможность получать через Торнадо.

2 2

2 ответа:

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

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

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