ruby-on-rails – 为什么Puma只绑定到tcp6? (通过`rails s`)
发布时间:2020-12-17 04:33:14 所属栏目:百科 来源:网络整理
导读:全新生成的Rails 4.2.0项目. Ran rails s,使用WEBrick表现得如预期: vagrant@web1:~$netstat -nlptProto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN 27158/ruby2.1 tcp6 0 0 ::1:3000 ::
全新生成的Rails 4.2.0项目. Ran rails s,使用WEBrick表现得如预期:
vagrant@web1:~$netstat -nlpt Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN 27158/ruby2.1 tcp6 0 0 ::1:3000 :::* LISTEN 27158/ruby2.1 添加puma到Gemfile,运行bundle,然后再次使用rails;想出了Puma,但只绑定了tcp6接口,而不是tcp: vagrant@web1:~$netstat -nlpt Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 ::1:3000 :::* LISTEN 27116/ruby2.1 有什么线索的原因?我一直在谷歌搜索没有运气. 更新: 运行puma -b tcp://0.0.0.0:3000有效.但是,将bind指令添加到config / puma.rb并运行rails s不会: bind 'tcp://0.0.0.0:3000' 然而,我的配置文件中的threads / workers指令正在工作,因此我知道配置文件正在加载和使用. (甚至添加了一个put语句以确定.) 如果我只是运行puma,绑定到正确的接口,配置文件甚至会被拾取.我可能只需要使用puma而不是rails s,即使它很烦人,也必须添加到我的开发人员文档中. UPDATE2: 我误解了.运行rails s不会自动获取config / puma.rb.还在调查…… 解决方法
运行轨道如:
rails s -b 0.0.0.0 适合我.问题是“localhost”(默认绑定地址)绑定在IPv4和IPv6上,如果两者都可用,则选择v6.0.0.0.0强制使用IPv4地址(也适用于127.0.0.1). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |