CONNECTION_TIMED_OUT 从 Amazon EC2 上的 CherryPy 网络服务检索数据时出错

CONNECTION_TIMED_OUT error when retrieving data from CherryPy webservice on Amazon EC2

我有一个 Web 应用程序在我的 Mac 上运行得很好 运行。在 Tomcat 下用 GWT 编写的前端,调用后端 CherryPy 服务获取数据。

我正在尝试在 Amazon EC2 Linux 实例上获取它 运行。

Tomcat 配置为使用 8090,CherryPy 使用 8080。

当我启动我的 CherryPy 服务器时,我得到以下信息,其中隐藏的 IP 地址是我的私有 IP 地址(这应该只能在本地调用)。

> [06/Mar/2015:21:23:59] ENGINE Listening for SIGHUP.
> [06/Mar/2015:21:23:59] ENGINE Listening for SIGTERM.
> [06/Mar/2015:21:23:59] ENGINE Listening for SIGUSR1.
> [06/Mar/2015:21:23:59] ENGINE Bus STARTING [06/Mar/2015:21:23:59]
> ENGINE Started monitor thread 'Autoreloader'. [06/Mar/2015:21:23:59]
> ENGINE Started monitor thread '_TimeoutMonitor'.
> [06/Mar/2015:21:24:00] ENGINE Serving on http://xxx.xx.x.xxx:8080
> [06/Mar/2015:21:24:00] ENGINE Bus STARTED

前端正在从 http://xxx.xx.x.xxx:8080/search/?role=0&query=foo 请求,我验证了 IP 地址匹配。

CherryPy 服务器的日志从未显示它收到请求,但我没有收到连接拒绝错误,而是超时错误。我最初让 CherryPy 服务器在 0.0.0.0 上运行,但这也不起作用。

我肯定漏掉了什么;我只是不知道。

我对GWT不是很熟悉,但是听上去像是运行在客户端的浏览器中,也就是说前端生成的请求是来自客户端机器,而不是后端机器。这意味着您需要打开 CherryPy 端口以在 0.0.0.0 上提供服务,并且前端应使用您服务器的 public IP 地址连接到后端,而不是私有 IP。