Ruby on rails `rails服务器`使用Puma和指向127.0.0.1的域名

Ruby on rails `rails服务器`使用Puma和指向127.0.0.1的域名,ruby-on-rails,dns,subdomain,puma,Ruby On Rails,Dns,Subdomain,Puma,我有一个使用子域的Rails应用程序(遗留应用程序,我一直想改变它,但现在还没有)。我将我的应用程序部署到Heroku并开始测试,因为它是Heroku的推荐选择,也是即将发布的Rails的默认版本。当我使用WEBrick(本地)时,我能够使用指向127.0.0.1(如vcap.me)的DNS记录测试我的子域,特别是指向我的应用程序,并将子域正确设置为“abcde” 只需将gem'puma'添加到我的Gemfile和runnning包中,就会导致rails服务器启动puma。除了没有一个测试域工作

我有一个使用子域的Rails应用程序(遗留应用程序,我一直想改变它,但现在还没有)。我将我的应用程序部署到Heroku并开始测试,因为它是Heroku的推荐选择,也是即将发布的Rails的默认版本。当我使用WEBrick(本地)时,我能够使用指向127.0.0.1(如vcap.me)的DNS记录测试我的子域,特别是指向我的应用程序,并将子域正确设置为
“abcde”

只需将
gem'puma'
添加到我的Gemfile和runnning包中,就会导致
rails服务器启动puma。除了没有一个测试域工作:工作,但不是或

Chrome只是说: “此网页不可用 错误连接被拒绝“

火狐: “无法连接 Firefox无法在vcap上建立与服务器的连接。me:3000。 ……”

我还没有找到原因/解决方案,但我怀疑这与Puma支持的非HTTP TCP请求有关,除非我知道,我只是通过浏览器尝试HTTP请求

出于好奇,如果您没有听说过vcap.me和类似的域,那么它只是一个指向localhost的DNS记录:

$ dig vcap.me
...
vcap.me.        3048    IN  A   127.0.0.1
...

$ dig a.vcap.me
...
a.vcap.me.      3600    IN  A   127.0.0.1
...

“我感到惭愧,”maxd发布了一个非常类似问题的解决方案:而且它是有效的。我仍然不明白为什么我需要绑定到vcap.me,而我以前使用WEBrick时没有

rails server -p 3000 -b vcap.me
我会把这个问题留待讨论,这样也许有人可以展开讨论,我们都可以更好地了解正在发生的事情

这是在2016年7月18日解决的Puma服务器中

您使用诸如
vcap.me
之类的域不是问题所在。DNS服务器将该域解析为
127.0.0.1
。问题是,在修复之前,Puma在某些系统上默认情况下仅绑定到
本地主机的IPv6解析,即
::1
。由于
vcap.me
不提供IPv6解决方案,您无法通过呼叫联系Puma

您观察到的
rails服务器-p3000-bvcap.me
解决了这个问题,是因为它相当于
rails服务器-p3000-b127.0.0.1
。之后,服务器的地址与仅IPv4的名称解析
vcap.me
匹配

无论如何,这是一个过去的问题。现在默认情况下,Puma绑定到
localhost
的IPv4和IPv6分辨率