Веб-сервер 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 ответа:
Вы запускаете сервер через порт 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.