Форум сайта python.su
Имеется VPS-сервер CentOS 6.6, Python 2.6
На нём есть десяток работающих сайтов на php, связка серверов apache/nginx
Это немного о сервере.
В целом с web-технологиями знаком и в сфере работаю давно, но Python изучаю недавно.
Сейчас передо мной стоит задача запустить сервер Tornado на Python'е и вывезти ‘Hello, World’ в браузере пользователя. В будущем хочу попробовать Tornado как websocket.
И мне понадобилась помощь, так как Tornado пока не поддаётся.
Скачал Tornado с сайта http://tornado.readthedocs.org/en/stable/
Выполнил установку:
tar xvzf tornado-4.3.tar.gz
cd tornado-4.3
python setup.py build
python setup.py install
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") def make_app(): return tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": app = make_app() app.listen(9000) tornado.ioloop.IOLoop.current().start()
python app.py
ERR_CONNECTION_TIMED_OUT
Traceback (most recent call last): File "app.py", line 29, in <module> tornado.ioloop.IOLoop.current().start() File "/root/tornado/tornado-4.3/tornado/ioloop.py", line 858, in start event_pairs = self._impl.poll(poll_timeout) KeyboardInterrupt
Офлайн
Если вызвать demo-приложение helloworld.py поставляемое с сервером Tornado, то картина примерно та же:
helloworld.py:
import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define, options define("port", default=8686, help="run on the given port", type=int) class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") def main(): tornado.options.parse_command_line() application = tornado.web.Application([ (r"/", MainHandler), ]) http_server = tornado.httpserver.HTTPServer(application) http_server.listen(options.port) tornado.ioloop.IOLoop.current().start() if __name__ == "__main__": main()
Traceback (most recent call last): File "demos/helloworld/helloworld.py", line 43, in <module> main() File "demos/helloworld/helloworld.py", line 39, in main tornado.ioloop.IOLoop.current().start() File "/usr/lib64/python2.6/site-packages/tornado-4.3-py2.6-linux-x86_64.egg/tornado/ioloop.py", line 858, in start event_pairs = self._impl.poll(poll_timeout) KeyboardInterrupt
Офлайн
dbogdanoff
http://213.136.83.249:9000/
Отредактировано 4kpt_III (Дек. 19, 2015 14:27:03)
Офлайн
В работе используется удалённый Web-сервер https://contabo.com/?show=configurator&vserver_id=145
Не локально!
Офлайн
А локально он работает?
Офлайн
Локально и не пробовал.
Моя машина под управлением windows, полагаю, что это не проблема, но локально мне задачу не надо решать.
Офлайн
Понимаете, я никогда не сталкивался с такой ошибкой, сколько не использовал торнаду. Поэтому хотел определить, что проблема именно на сервере. Если он локально работает, а на сервере нет - значит нужно копать настройки. Нашел только это
P.S. Проверил. Работает без проблем.
Отредактировано 4kpt_III (Дек. 19, 2015 15:07:02)
Офлайн
Настройки, возможно…
Мне также сейчас главное выявить, правильно ли я понял вообще принцип запуска сервера, что я запускаю файл в терминале и сразу же могу стучаться на сервер. Всю жизнь работал с apache, nginx и для меня это ой как непривычно
Другие файлы в списке на скриншоте, это я пробовал разные способы сборки из интернета.
На скриншоте видно, что я запустил файл app.py после чего делаю http-запрос с браузера.
Там вижу упомянутую выше ошибку и прерываю выполнение Ctrl+C
Офлайн
Неее. Это неправильно, естественно. Хотя вам сначала нужно его нормально заставить работать.
У меня в проектах торнаду держит supervisor. Он и поднимает, торнаду, если она упадет.
Офлайн
KeyboardInterrupt означает, что вы прервали выполнение скрипта сочетанием клавиш Ctrl+C. К вашей проблеме это не имеет отношения.
Что там с файрволлом у вас? Очень похоже именно на его работу.
Офлайн