首页 > 解决方案 > GCP 实例为 Ajax 127.0.0.1 路由返回 ERR_CONNECTION_REFUSED

问题描述

我有一个使用散景的烧瓶应用程序,它在 Docker 容器中运行,当我在本地机器上使用它时它可以工作。

但是,当我将它部署到 GCP 实例时,即使我可以访问服务器,我也有一些无法连接的 AjaxDataSource() 对象。

一些细节,

有很多工作,

不起作用的是使用 的 Ajax() 调用127.0.0.1尽管当我在本地机器上运行容器时这确实有效。

我在检查窗口中看到的错误是ERR_CONNECTION_REFUSED

GCP 实例hosts.conf 确实包含一行127.0.0.1 localhost

我在 GCP VM 实例上尝试(从这里),结果相同,

    iptables -A INPUT -i docker0 -j ACCEPT

我还尝试(从这里)将 Docker 运行网络更改为--net="host",结果是相同的。

我还尝试添加--add-host localhost:127.0.0.1到 Docker 运行命令,结果相同。

我认为问题在于将 GCP 配置为知道如何将请求路由到127.0.0.1,但我不知道在哪里检查、配置它,超出了我已经完成的操作。

标签: pythondockerflaskgoogle-cloud-platformbokeh

解决方案


我无法具体解决我遇到的问题,但我尝试了一种不同的 URL 方法AjaxDataSource(),它有效,我认为更好的方法......

我使用 Flaskurl_for()函数创建了一个指向需要的路径的链接,AjaxDataSource()这有效。生成的链接看起来像,

    /land/tmidemo/data_rate/ResultBaseKeysV1

即,不http://127.0.0.1,这似乎适用于所有情况,我的开发环境和 GCP。

我想我很久以前就试过了,但没有成功,因为我到处都使用“flask”URL,但出于某种原因,我认为我需要“ http://127.0.0.1 ”来处理 Ajax 的东西。它现在的作品....继续前进!


推荐阅读