2011-09-21 18 views
19

Ho creato un'applicazione Web Python utilizzando CherryPy e sono stata distribuita sul mio computer locale.Applicazione web Python (CherryPy) distribuita localmente, ma non visibile su intranet

Quando provo a visualizzarlo da un altro computer in casa, non viene restituito nulla.

Tuttavia, se creo un file html semplice, e distribuirlo con:

$ python -m SimpleHTTPServer 

E 'visibile sopra la rete Intranet.

Sono perplesso sul motivo per cui la mia app potrebbe funzionare localmente, ma non essere disponibile per l'intranet, dato che non esiste un problema di connessione tra queste macchine e che posso servire altri contenuti sulla stessa porta.

Non ho usato un file di configurazione, sto usando le impostazioni predefinite di CherryPy.

risposta

27

Le impostazioni predefinite sono probabilmente associate a localhost, che non è disponibile pubblicamente. Se vuoi che CherryPy sia eseguito su un'interfaccia pubblica, dovrai dirigerlo per farlo. Da this discussion ho trovato:

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() 

Per associare a tutte le interfacce.

+1

Si dovrebbe andare bene con 0.0.0.0. Questo è fondamentalmente il tuo computer locale, accessibile pubblicamente (mentre il 127.0.0.1 predefinito è il tuo computer locale, non accessibile pubblicamente). – Dave

+2

Per chiarire questa risposta, un modo per configurare l'host socket è chiamare 'cherrypy.config.update ({'server.socket_host': '0.0.0.0'})' prima di chiamare 'cherrypy.quickstart()'. Potrebbe anche essere usato un file di configurazione. –

Problemi correlati