相关疑难解决方法(0)

为什么Puma只绑定到tcp6?(通过`rails s`)

全新生成的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   
Run Code Online (Sandbox Code Playgroud)

添加puma到Gemfile,运行bundle,然后rails s再次; 想出了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   
Run Code Online (Sandbox Code Playgroud)

有什么线索的原因?我一直在谷歌搜索没有运气.

更新:

跑步puma -b tcp://0.0.0.0:3000工作.但是,将bind指令添加到config/puma.rb并运行rails s不会:

bind 'tcp://0.0.0.0:3000'
Run Code Online (Sandbox Code Playgroud)

然而,我的配置文件中的threads/workers指令正在工作,因此我知道配置文件正在加载和使用.(甚至添加了一个put语句以确定.)

如果我只是运行puma,绑定到正确的接口,配置文件甚至会被拾取.我可能只需要运行puma而不是rails s,尽管它很烦人,必须添加到我的开发人员文档中.

UPDATE2:

我误解了.运行 …

ruby-on-rails ipv6 puma

9
推荐指数
1
解决办法
2123
查看次数

标签 统计

ipv6 ×1

puma ×1

ruby-on-rails ×1