我在我的机器上运行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方面并不是一个错误的配置。
我需要使用标志-b 0.0.0.0运行rails以允许任何IP。默认情况下,Rails仅提供localhost IP。
rails s -b 0.0.0.0
您可以随时在运行服务器的特定端口上尝试telneting
,以找出问题,无论是网络问题还是其他任何配置问题。