Python (CherryPy) 网络应用本地部署,但在内网不可见
我用CherryPy创建了一个Python网页应用,并把它部署在我的本地电脑上。
但是,当我尝试从家里的另一台电脑访问这个应用时,什么都没有显示出来。
不过,如果我创建一个简单的html文件,并用下面的方式部署:
$ python -m SimpleHTTPServer
那么在局域网内是可以访问的。
我很困惑,为什么我的应用在本地可以正常工作,但在局域网内却无法访问。毕竟,这两台机器之间没有连接问题,而且我可以在同一个端口上提供其他内容。
我没有使用配置文件,而是用的CherryPy的默认设置。
1 个回答
32
默认设置可能是绑定到本地地址,也就是只在你自己的电脑上可用,这样外面的人是无法访问的。如果你想让CherryPy在公共网络上运行,你需要告诉它怎么做。从这个讨论中我发现:
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()
这样可以绑定到所有网络接口。