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')
答案 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变量是个好主意。
希望有帮助!