Ruby on rails `rails服务器`使用Puma和指向127.0.0.1的域名
我有一个使用子域的Rails应用程序(遗留应用程序,我一直想改变它,但现在还没有)。我将我的应用程序部署到Heroku并开始测试,因为它是Heroku的推荐选择,也是即将发布的Rails的默认版本。当我使用WEBrick(本地)时,我能够使用指向127.0.0.1(如vcap.me)的DNS记录测试我的子域,特别是指向我的应用程序,并将子域正确设置为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。除了没有一个测试域工作
“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分辨率