2011-09-21 16 views
19

He creado una aplicación web Python usando CherryPy y la he implementado en mi máquina local.Aplicación web Python (CherryPy) implementada localmente, pero no visible en la intranet

Cuando trato de verlo desde otra computadora en la casa, nada vuelve.

Sin embargo, si se crea un archivo HTML simple, y desplegarlo con:

$ python -m SimpleHTTPServer 

Es visible en la intranet.

No entiendo por qué mi aplicación podría funcionar localmente, pero no estar disponible en la intranet, dado que no hay un problema de conexión entre estas máquinas, y que puedo servir otro contenido en el mismo puerto.

No he utilizado un archivo de configuración, estoy usando la configuración predeterminada de CherryPy.

Respuesta

27

Es posible que la configuración predeterminada se vincule a localhost, que no está disponible públicamente. Si quieres que CherryPy se ejecute en una interfaz pública, deberás dirigirlo para que lo haga. De this discussion que encontré:

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

o

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

Para enlazar a todas las interfaces.

+1

Deberías estar bien con 0.0.0.0. Esa es básicamente su computadora local, de acceso público (mientras que la 127.0.0.1 predeterminada es su computadora local, no accesible públicamente). – Dave

+2

Para aclarar esta respuesta, una forma de configurar el host socket es llamar a 'cherrypy.config.update ({'server.socket_host': '0.0.0.0'})' antes de llamar a 'cherrypy.quickstart()'. Un archivo de configuración también podría ser utilizado. –

Cuestiones relacionadas