2011-09-21 16 views
19

我已经创建了一个使用CherryPy的Python Web应用程序,并已部署在本地计算机上。本地部署Python(CherryPy)web应用程序,但在Intranet上无法看到

当我试图从房子里的另一台计算机上查看它时,什么都没有回来。

但是,如果我创建了一个简单的HTML文件,并与部署:

$ python -m SimpleHTTPServer 

它是通过局域网可见。

我很难理解为什么我的应用可以在本地工作,但不能在内部网上使用,因为这些机器之间没有连接问题,而且我可以在同一端口上提供其他内容。

我还没有使用配置文件,我使用的是默认的CherryPy设置。

回答

27

默认设置可能会绑定到localhost,这是不公开的。如果你想让CherryPy在公共界面上运行,你必须指示它做到这一点。从this discussion我发现:

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

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

绑定到所有接口。

+1

你应该可以使用0.0.0.0。这基本上就是你的本地计算机,可公开访问(而默认的127.0.0.1是你的本地计算机,不可公开访问)。 – Dave

+2

为了澄清这个答案,配置套接字主机的一种方法是在调用'cherrypy.quickstart()'之前调用'cherrypy.config.update({'server.socket_host':'0.0.0.0'})''。配置文件也可以使用。 –

相关问题