2015-01-04 22 views
7

全新生成的Rails 4.2.0項目。冉rails s,表現爲使用的WEBrick預期:爲什麼彪馬只綁定到tcp6? (通過`rails s`)

[email protected]:~$ 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 

新增彪馬的Gemfile,跑了捆綁,然後再rails s;想出彪馬,但只綁定tcp6接口,而不是tcp:

[email protected]:~$ netstat -nlpt 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  PID/Program name 
tcp6  0  0 ::1:3000    :::*     LISTEN  27116/ruby2.1 

任何線索爲什麼?我一直在用google搜索,沒有運氣。

UPDATE:

運行puma -b tcp://0.0.0.0:3000作品。然而,添加綁定指令來配置/ puma.rb和運行rails s沒有:但是

bind 'tcp://0.0.0.0:3000' 

的在我的配置文件線程/工人指令正在努力,所以我知道該配置文件被加載得到和用過的。 (甚至添加了一個puts語句,以確保。)

如果我只是運行puma,綁定到正確的接口,配置文件甚至被拿起。我可能不得不求助於運行puma而不是rails s,儘管它很煩人並且必須添加到我的開發人員文檔中。

UPDATE2:

我錯了。運行rails s不會自動獲取config/puma.rb。仍在調查......

+0

這對我來說不再是問題,因爲我決定使用'puma'來運行rails應用程序而不是'rails s',這使得一切正常 - 儘管我仍然認爲應該修復這個問題。我必須切換到'puma'的原因是配置文件被拾取:http://stackoverflow.com/questions/25225444/how-to-run-rails-puma-server-with-config-file-using -rails-s-puma – odigity

+0

另一種解決方案是,如果在apache/nginx反向代理之後使用它,則只是使用IPv6地址。 – luismreis

回答

0

的運轉軌道,如:

rails s -b 0.0.0.0 

爲我工作。問題在於「localhost」(默認綁定地址)綁定在IPv4和IPv6上,如果兩者都可用,則選擇v6。 0.0.0.0強制使用IPv4地址(也適用於127.0.0.1)。

+0

對我來說,即使在運行這個命令欄後,它會監聽tcp://0.0.0.0:3000 –

相關問題