如何从另一个实例 CURL 一个 OpenStack 实例

How to CURL an instance of OpenStack from another Instance

我的机器上有 运行 devstack,并创建了一个 Alpine Linux 实例,它在端口 3000 上运行 Rails API (IP 10.0.0.6)也试过 80、8080)。然后我创建了一个简单的 CirrOS 客户端实例(IP 10.0.0.4)来访问 API 的 /test 端点。但是,我发现我可以 ŕun:

 ping 10.0.0.6

来自 CirrOS 实例并接收数据包响应。但是,当我尝试时:

curl -XGET http://10.0.0.6:3000/test

我收到错误:

 curl: (7) couldn't connect to host

这两个实例属于私有网络,安全组策略允许任何类型协议的任何 Ingress 和 Egress。

/test 端点在 API 实例上本地工作。 我还测试了我能够从一个实例到另一个实例建立 ssh 连接。

我可能缺少什么配置?谢谢!

找到解决方案。

这不是 openstack 端的配置错误。

我需要 运行 rails 使用标志 -b 0.0.0.0 以允许任何 IP。 Rails 默认情况下仅服务于本地主机 IP。

rails s -b 0.0.0.0

您总是可以在服务器 运行 所在的特定端口上尝试 telneting 来查找问题,无论是网络问题还是任何其他配置问题。