我无法建立与端口8080的TCP连接:连接被拒绝

时间:2019-06-28 14:30:46

标签: python-3.x cloudfoundry

10:07:34.779:[APP / PROC / WEB.0] *在http://127.0.0.1:8080/上运行(按CTRL + C退出) 10:08:34.562:[HEALTH.0]无法建立与端口8080的TCP连接:连接被拒绝 10:08:34.562:[CELL.0] 1分0秒后超时:运行状况检查从未通过。

尽管我的代码在本地计算机上运行正常

class Health (Resource):#this piecc of code is to perform the health check of the application so that it can run successfully without crashing on cf
      def get(self):
        return "UP"

api.add_resource(Health, '/health')

if __name__ == '__main__': #read about uses of main
    app.run(port = '8080')

1 个答案:

答案 0 :(得分:1)

您需要确保您正在听的不是127.0.0.1/localhost。这是无法从外部访问的,因此,如果您仅在127.0.0.1/localhost上进行侦听,则运行状况检查和外部流量将无法访问您的应用程序。

最简单的方法是在所有接口上监听的0.0.0.0上进行监听。从技术上讲,您可以侦听特定的IP,但这需要做更多的工作,并且最终会做同样的事情。

在我在Cloud Foundry上运行的Python Flask应用程序中,我最终做了这样的事情:

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=int(os.environ.get('PORT', 5001)))

第二部分在技术上不是必需的,因为PORT应该始终解析为8080,但是将来可能会改变,因此阅读PORT env变量是个好主意。

希望有帮助!