Tornado как обычный сервер

#python #tornado

#python #tornado

Вопрос:

Как прослушивать соединения на веб-сервере Tornado, поступающие не из локальной сети? По умолчанию он прослушивает только соединение с localhost. Я пробовал советы от Django, чтобы запустить его прослушивание по адресу 0.0.0.0, но это не работает.

Немного простого кода:

 server = tornado.httpserver.HTTPServer(application)
server.listen(8000, '0.0.0.0')
  

Ответ №1:

ПО умолчанию httpserver tornado будет прослушивать указанный порт для всех сетевых интерфейсов (IP-адресов). Итак, передача только порта должна работать нормально.

Вам также необходимо обязательно запустить экземпляр ioloop, который использует сервер:

 http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8000)
tornado.ioloop.IOLoop.instance().start()
  

Документы tornado очень хороши.

Комментарии:

1. Итак, теперь я не знаю. Я пытаюсь запустить project FemHub Online Lab как сервис, чтобы иметь доступ с других компьютеров (наиболее важным является core), но когда я могу получить к нему доступ с локального компьютера (localhost, LAN IP и WAN IP, у меня перенаправленные порты) У меня нет проблем, но когда я пытаюсь подключиться с виртуальной машины или моего сервера, я не могу получить доступ. Даже если я изменил исходные коды, чтобы добавить отсутствующий адрес parm.

2. Я только кратко взглянул, но мне кажется, что это приложение действительно настраивает экземпляр HTTPServer tornado для прослушивания на всех интерфейсах. Смотрите github.com/certik/femhub-online-lab/blob/master/onlinelab/core /… , параметр адреса не передается.

3. Да, я создал это, и, согласно вашим словам, это должно работать, но этого не произошло. Понятия не имею. Единственное решение, которое я могу использовать, это запустить tornado в качестве серверной части и ex. nginix в качестве основного веб-сервера. Это должно закончиться со всеми ограничениями.

4. Отредактируйте свой вопрос и добавьте соответствующую конфигурацию (порт, адрес и т.д.), Которую вы используете, А также некоторые сведения о вашем сервере (это IP, какая это ОС). Я подумаю

5. Для разработки я запускаю этот скрипт на своем собственном компьютере. Через секунду я размещу его на своем сервере, чтобы глубоко протестировать.

Ответ №2:

Я обнаружил этот вопрос, пытаясь диагностировать аналогичную проблему (сервер tornado, запущенный на компьютере A, недоступен с компьютера B).

В конце концов я понял это, мне нужно было открыть порт на брандмауэре компьютера A.