Веб-приложение Python (CherryPy), развернутое локально, но не видимое в интрасети

Я создал веб-приложение Python с помощью CherryPy и развернул его на своем локальном компьютере.

Когда я пытаюсь просмотреть его с другого компьютера в доме, ничего не возвращается.

Однако, если я создам простой html-файл и разверну его с помощью:

$ python -m SimpleHTTPServer

Он виден через интранет.

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

Я не использовал файл конфигурации, я использую настройки CherryPy по умолчанию.


person Eric Wilson    schedule 21.09.2011    source источник


Ответы (1)


Настройки по умолчанию, вероятно, привязаны к локальному хосту, который не является общедоступным. Если вы хотите, чтобы CherryPy работал на общедоступном интерфейсе, вам нужно указать ему это. Из этого обсуждения я нашел:

cherrypy.config.update(
    {'server.socket_host': '10.149.4.240' } ) # Pub IP
cherrypy.quickstart()

or

cherrypy.config.update(
    {'server.socket_host': '0.0.0.0'} )      
cherrypy.quickstart()

Для привязки ко всем интерфейсам.

person Gringo Suave    schedule 21.09.2011
comment
Вы должны быть в порядке с 0.0.0.0. Это в основном ваш локальный компьютер, общедоступный (хотя по умолчанию 127.0.0.1 — это ваш локальный компьютер, недоступный для всех). - person Dave; 21.09.2011
comment
Чтобы прояснить этот ответ, один из способов настроить узел сокета — вызвать cherrypy.config.update({'server.socket_host': '0.0.0.0'}) перед вызовом cherrypy.quickstart(). Также можно использовать файл конфигурации. - person Eric Wilson; 21.09.2011