Python(CherryPy)Web应用程序在本地部署,但在Intranet上不可见

Eri*_*son 21 python intranet cherrypy

我使用CherryPy创建了一个Python Web应用程序,并已部署在我的本地计算机上.

当我试图从房子里的另一台电脑上看时,没有任何东西回来.

但是,如果我创建一个简单的html文件,并使用以下命令进行部署:

$ python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)

它在Intranet上可见.

我很困惑,为什么我的应用程序可以在本地工作,但由于这些机器之间没有连接问题,并且我可以在同一端口上提供其他内容,因此无法通过Intranet进行操作.

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

Gri*_*ave 30

默认设置可能绑定到localhost,而localhost不公开.如果您希望CherryPy在公共接口上运行,您必须指示它执行此操作.从这次讨论中我发现:

cherrypy.config.update(
    {'server.socket_host': '10.149.4.240' } ) # Pub IP
cherrypy.quickstart()
Run Code Online (Sandbox Code Playgroud)

要么

cherrypy.config.update(
    {'server.socket_host': '0.0.0.0'} )      
cherrypy.quickstart()
Run Code Online (Sandbox Code Playgroud)

绑定到所有接口.

  • 为了澄清这个答案,配置套接字主机的一种方法是在调用`cherrypy.quickstart()之前调用`cherrypy.config.update({'server.socket_host':'0.0.0.0'})`.也可以使用配置文件. (3认同)
  • 0.0.0.0 应该没问题。这基本上是您的本地计算机,可公开访问(而默认 127.0.0.1 是您的本地计算机,不可公开访问)。 (2认同)