【问题标题】:Python (CherryPy) web app deployed locally, but not visible over intranetPython (CherryPy) Web 应用程序在本地部署,但在 Intranet 上不可见
【发布时间】:2011-11-21 14:11:20
【问题描述】:

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

当我尝试从家里的另一台计算机上查看它时,什么也没有返回。

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

$ python -m SimpleHTTPServer

在 Intranet 上可见。

考虑到这些机器之间没有连接问题,而且我可以在同一个端口上提供其他内容,我很难理解为什么我的应用可以在本地运行,但不能在 Intranet 上运行。

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

【问题讨论】:

    标签: python cherrypy intranet


    【解决方案1】:

    默认设置可能会绑定到 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()
    

    绑定到所有接口。

    【讨论】:

    • 0.0.0.0 应该没问题。这基本上是您的本地计算机,可公开访问(而默认 127.0.0.1 是您的本地计算机,不可公开访问)。
    • 为了澄清这个答案,配置套接字主机的一种方法是在调用cherrypy.quickstart() 之前调用cherrypy.config.update({'server.socket_host': '0.0.0.0'})。也可以使用配置文件。
    猜你喜欢
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    相关资源
    最近更新 更多