2009-09-25 141 views
30

我很新Ruby on Rails所以當我試圖按照正式的「入門」「ruby on rails教程,我有點失望,因爲它很快就出錯了。基本上它說:爲什麼Ruby on Rails使用http://0.0.0.0:3000而不是http:// localhost:3000?

...導航到http://localhost:3000。你應該看到Rails的默認信息頁面。

但是,當我按照指示,我得到

 
=> Rails 2.3.4 application starting on http://0.0.0.0:3000 

嘗試這兩個地址後,我知道他們指向同樣的事情,但爲什麼Ruby on Rails的使用http://0.0.0.0:3000反而會有人向我解釋的http://localhost:3000

有沒有辦法讓WEBbrick服務器始終使用localhost?

回答

49

本地主機意味着完全是「您的本地主機」,通常由127.0.0.1標識,並且該地址的所有通信都通過回送接口進行路由。如果您的Web服務器正在監聽127.0.0.1上的連接,這意味着它只接受來自同一主機的請求。

0.0.0.0表示Rails正在監聽全部接口,而不僅僅是回送接口。

+7

要設置WEBrick只在本地主機上偵聽,這意味着忽略外部連接:script/server --binding = 127.0.0。1 – tadman 2009-09-25 20:29:38

+5

僅供參考,在爲我啓動WEBrick時指定綁定到127.0.0.1使我的本地導軌連接(以及外部網絡連接)更快。所以如果你的本地連接速度很慢,我推薦@tadman建議的內容。在Rails 3中,它是** rails server --binding = 127.0.0.1 ** – 2011-10-25 13:41:19

15

0.0.0.0表示所有接口。包括127.0.0.1又名localhost

0

實際上,rails有不同的配置選項,可以監聽特定或所有接口。

0

只是讓每個人都知道,我的firefox瀏覽器正確顯示本地託管服務器,如果我訪問 http://localhost:3000/ 但是當我試圖訪問 http://0.0.0.0:3000/ 所推薦的紅寶石不會顯示。顯然,從某種意義上說,它們並不等同。

我在Windows btw上。

+0

'0.0.0.0'不是您可以使用客戶端實際訪問的IP地址。這只是系統綁定調用使用_all_可用IP地址的快捷方式。 – 2014-12-10 18:50:35

0

對於那些使用Nitrous.io虛擬服務器環境進行開發的人,我相信我們必須綁定到0.0.0.0,因爲本身沒有本地主機。

0

如果你想localhost,一個快速的方法是指定綁定rails s -blocalhost(和端口-pNNNN,更多的選項rails s --help)。

由於需要調查的原因,我的服務器默認在localhost開始運行。結果lvh.me停止工作,阻止我指定子域(例如:www.lvh.me:3000)。

我 「解決」 這個指定綁定:

rails s -b0.0.0.0 # will work with lvh.me 
0

重新啓動操作系統爲我工作。 (在Mac v 10.12上)

相關問題