2009-09-25 6 views
30

मैं रेल पर रूबी पर बहुत नया हूं, इसलिए जब मैंने आधिकारिक "प्रारंभ करना" रेल ट्यूटोरियल पर रूबी शुरू करने का प्रयास किया, तो मैं थोड़ा निराश था क्योंकि यह बहुत जल्दी गलत हो गया था। मूल रूप से यह कहा:रूबी ऑन रेल्स http://0.0.0.0:3000 बजाय http क्यों इस्तेमाल करता है?

... http://localhost:3000 पर जाएँ। आपको रेल के डिफ़ॉल्ट सूचना पृष्ठ को देखना चाहिए।

लेकिन जब मैं निर्देशों का पालन करें, मैं

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

मिल दोनों पतों की कोशिश के बाद, मुझे पता है कि वे एक ही बात को इंगित, लेकिन क्यों रूबी ऑन रेल्स http://0.0.0.0:3000 बजाय का उपयोग करता है किसी ने मुझे समझा सकता है http://localhost:3000 का?

वहाँ एक रास्ता हमेशा WEBbrick सर्वर का उपयोग स्थानीय होस्ट करने के लिए है?

उत्तर

49

स्थानीय होस्ट काफी का शाब्दिक अर्थ "अपने स्थानीय मेजबान", आमतौर पर और 127.0.0.1 द्वारा की पहचान उस पते पर सभी यातायात लूपबैक इंटरफ़ेस के माध्यम से रूट किया जाता है का मतलब है। यदि आपका वेब सर्वर 127.0.0.1 पर कनेक्शन के लिए सुन रहा है, तो इसका मतलब है कि यह केवल उसी होस्ट से आने वाले अनुरोध स्वीकार करता है।

0.0.0.0 का अर्थ है कि रेल पर सभी इंटरफेस पर सुन रहा है, न केवल लूपबैक इंटरफ़ेस।

+7

केवल वेबहोस्ट पर सुनने के लिए वेबब्रिक सेट अप करने के लिए, जिसका अर्थ है बाहरी कनेक्शन को अनदेखा किया जाता है: स्क्रिप्ट/सर्वर - बाइंडिंग = 127.0.0।1 – tadman

+5

एफवाईआई, मेरे लिए वेबब्रिक को बूट करते समय 127.0.0.1 को बाध्यकारी निर्दिष्ट करते हुए मेरे स्थानीय रेल कनेक्शन (और, इस प्रकार, बाहरी वेब कनेक्शन भी) बहुत तेजी से बना। तो यदि आपका स्थानीय कनेक्शन धीमा है, तो मैं अनुशंसा करता हूं कि @tadman ने क्या सुझाव दिया। रेल 3 में, यह ** रेल सर्वर - बाइंडिंग = 127.0.0.1 ** –

15

0.0.0.0 सभी इंटरफ़ेस का मतलब है। 127.0.0.1 a.k.a. localhost सहित।

0

दरअसल रेल अगर यह कुछ विशिष्ट या सभी इंटरफेस को सुनता है के बारे में अलग अलग विन्यास विकल्प है।

0

जैसा कि हर कोई जानता है, मेरे फ़ायरफ़ॉक्स ब्राउज़र ठीक से स्थानीय स्तर पर की मेजबानी सर्वर को प्रदर्शित करता है अगर मैं http://localhost:3000/ का उपयोग, लेकिन यह प्रदर्शित नहीं करता है जब मैं के रूप में रूबी द्वारा सिफारिश की http://0.0.0.0:3000/ तक पहुँचने के लिए प्रयास करते हैं। जाहिर है, कुछ अर्थ में, वे बराबर नहीं हैं।

मैं btw विंडोज पर कर रहा हूँ।

+0

'0.0.0.0' एक आईपी पता नहीं है जिसे आप वास्तव में किसी क्लाइंट का उपयोग करके एक्सेस कर सकते हैं। यह _all_ उपलब्ध आईपी पते का उपयोग करने के लिए सिस्टम बाध्यकारी कॉल के लिए बस एक शॉर्टकट है। –

0

विकास के लिए Nitrous.io वर्चुअल सर्वर envrionment का उपयोग करने वाले हम में से, मुझे विश्वास है कि हमें 0.0.0.0 से बांधना होगा क्योंकि कोई स्थानीयहोस्ट नहीं है।

0

आप localhost चाहते हैं, एक त्वरित तरीका (rails s --help साथ और -pNNNN साथ बंदरगाह, और अधिक विकल्प) बाध्यकारी rails s -blocalhost निर्दिष्ट करने के लिए है।

मेरा सर्वर जांच के कारणों के लिए localhost पर डिफ़ॉल्ट रूप से चलना शुरू कर दिया। नतीजतन lvh.me ने काम करना बंद कर दिया, मुझे सबडोमेन निर्दिष्ट करने से रोक दिया (उदाहरण: www.lvh.me:3000)।

मैं "हल" इस निर्दिष्ट करने के लिए बाध्य:

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

ओएस को पुनः आरंभ मेरे लिए काम करता है। (मैक वी 10.12 पर)

संबंधित मुद्दे