2012-03-26 15 views
18

मैं ईसी 2 और वेब विकास के लिए नया हूं। वर्तमान में मेरे पास एक लिनक्स ईसी 2 इंस्टेंस चल रहा है, और Django स्थापित किया है। मैं अपनी असली परियोजना शुरू करने से पहले एक परीक्षण परियोजना बना रहा हूं और एक Django परीक्षण सर्वर चलाने की कोशिश की।ईसी 2 डीजेगो विकास सर्वर से कनेक्ट

python manage.py runserver ec2-###-##-##-##.compute-1.amazonaws.com:8000 
Validating models... 

0 errors found 
Django version 1.3, using settings 'testsite.settings' 
Development server is running at http://ec2-###-##-##-##.compute-1.amazonaws.com:8000/ 
Quit the server with CONTROL-C. 

यह wroking है कि मैं जाकर की कोशिश की है परीक्षण करने के लिए: ec2-###-##-##-##.compute-1.amazonaws.com:8000 लेकिन मैं हमेशा अपने ब्राउज़र से एक "कनेक्ट नहीं कर सकता" संदेश

इस खोल में मेरी उत्पादन होता है।

जब भी मैं अपने कंप्यूटर पर यह लापरवाही करता हूं, हालांकि मैं 127.0.0.1:8000 पर सफलतापूर्वक डीजेंगो विकास गृह पृष्ठ पर जाता हूं। क्या कोई मुझे यह जानने में मदद कर सकता है कि मैं क्या कर रहा हूं/गायब हो सकता है जब मैं अपने ईसी 2 इंस्टेंस पर ऐसा कर रहा हूं क्योंकि मेरे लैपटॉप के विपरीत?

+2

क्या आपने अभी इस समस्या को हल किया था? मुझे एक ही समस्या का सामना करना पड़ता है। – Treper

उत्तर

16

आपके पास फ़ायरवॉल पर पोर्ट 8000 खुला नहीं है। जांचें कि आपका इंस्टेंस कौन सा सुरक्षा समूह चल रहा है (शायद "डिफ़ॉल्ट") और नियमों को जांचें। आपको शायद पता चलेगा कि पोर्ट 8000 सूचीबद्ध नहीं है।

+0

ठीक है मैंने यूडीपी, टीसीपी, और सभी को आईसीएमपी को स्रोत के रूप में 'डिफ़ॉल्ट' के साथ जोड़ा लेकिन बंदरगाह 8000 से कनेक्ट करने का प्रयास अभी भी काम नहीं कर रहा है। क्या इसका मतलब यह है कि शायद Django काम नहीं कर रहा है या यह अभी भी अमेज़ॅन ec2 सर्वर पर फ़ायरवॉल है? आपकी मदद के लिए बहुत धन्यवाद! –

+0

उसी मशीन से दूसरा कनेक्शन खोलें और पोर्ट 80 पर टेलनेट करने का प्रयास करें, 'टेलनेट लोकलहोस्ट 80' फिर टाइप करें' प्राप्त करें और कुछ बार दर्ज करें। यदि आप कनेक्ट नहीं कर सकते हैं तो रनरवर ठीक से काम नहीं कर रहा है, अगर आप कर सकते हैं और आपको 'GET' से HTML प्राप्त होता है तो यह सर्वर के बीच है और आप कहां समस्या है। – KayEss

+0

मेरे पास "टेलनेट: कमांड नहीं मिला" erorr है:/ –

0

हां, यदि आप त्वरित लॉन्च ईसी 2 विकल्प का उपयोग करते हैं, तो आपको विकास सर्वर चलाने के लिए नया HTTP नियम (जैसा कि यह सूची में दिखाई देता है) जोड़ना चाहिए।

+1

क्या आप "सूची में दिखाई देने पर" स्पष्ट कर सकते हैं? – pjmorse

35

उबंटू के साथ एक EC-2 उदाहरण का उपयोग करते हुए, मैंने पाया कि निर्दिष्ट करने 0.0.0.0:8000 काम किया:

$python manage.py runserver 0.0.0.0:8000 

पाठ्यक्रम 8000 के अपने सुरक्षा समूह सेटिंग में टीसीपी के लिए खोला जाना आवश्यक है।

+1

मेरी इच्छा है कि मैंने 5 घंटे पहले इस टिप्पणी को देखा !!! धन्यवाद दोस्त! –

+0

आपको यह सुनिश्चित करने की भी आवश्यकता है कि इस बंदरगाह का पहले से उपयोग नहीं किया जा रहा है। – bozdoz

+0

यह इस प्रश्न के लिए सही प्रतिक्रिया है। धन्यवाद –

8

1) तुम्हें यकीन पोर्ट 8000 भीतर का बंदरगाहों में से अपनी सुरक्षा समूह की सूची में एक कस्टम टीसीपी नियम के रूप में जोड़ा जाता है बनाने की जरूरत है

2) बाधाओं रहे हैं, जो यह है कि आईपी है कि आप अपने एडब्ल्यूएस कंसोल पर सूचीबद्ध देख, आपके उदाहरण से जुड़े सार्वजनिक आईपी या एक सार्वजनिक डोमेन नाम (यानी ec2 - ### - ## - ## - ##। compute-1.amazonaws.com या 174.101.122.132) जो अमेज़ॅन असाइन करता है।

2.1) यदि यह एक सार्वजनिक आईपी है, तो आपके उदाहरण के पास यह जानने का कोई तरीका नहीं है कि सार्वजनिक आईपी को क्या सौंपा गया है, बल्कि यह केवल अपने असाइन किए गए स्थानीय आईपी को ही जानता होगा।

2.2) एक लिनक्स प्रणाली, प्रकार पर अपने स्थानीय आईपी प्राप्त करने के लिए:

$ ifconfig 

फिर eth0 डाटा को देखो और आप एक आईपी अगले करने के लिए प्रारूप में xxx.xxx "मंत्रिमंडल addr" दिखाई देगा .xxx.xxx (जैसे 10.10.12.135) यह आपके स्थानीय आईपी

3) सफलतापूर्वक runserver आपको निम्न दो में से एक कर सकते हैं करने के लिए है:

$ python manage.py runserver <LOCAL IP>:8000 
    or 
    $ python manage.py runserver 0.0.0.0:8000 

** विकल्प दो भी महान काम करता है क्योंकि अर्नेस्ट एज़िस ने अपने जवाब में उल्लेख किया था। संपादित: से Django पुस्तक: "आईपी पते 0.0.0.0 सर्वर बताता है किसी भी नेटवर्क इंटरफेस पर सुनने के लिए"

** लोक आईपी का मेरा सिद्धांत गलत हो सकता है, के बाद से मुझे यकीन है कि कैसे अमेज़न नहीं कर रहा हूँ आईपी ​​असाइन करता है। मैं सही होने की सराहना करता हूं।

+0

आपको बहुत बहुत धन्यवाद, आप मेरा दिन बचाओ। साझा करने के लिए धन्यवाद .. –

+0

धन्यवाद! आपका चरण # 1 "आपको यह सुनिश्चित करने की ज़रूरत है कि पोर्ट 8000 को कस्टम टीसीपी नियम के रूप में जोड़ा गया है जो आपकी सुरक्षा समूह सूची में इनबाउंड बंदरगाहों की सूची में है" जो मुझे चाहिए था। बाद में, python manage.py रनरवर 0.0.0.0:8000 एक (पीई) आकर्षण की तरह काम किया! –

+0

पहला कदम कैसे करें? –

1

मुझे एक ही समस्या थी। लेकिन मैं ईसी 2 पर आरएचईएल चला रहा था।सुरक्षा समूह में नियम जोड़ने के अलावा, मुझे मैन्युअल रूप से फायरवाल में एक पोर्ट जोड़ना पड़ा।

firewall-cmd --permanent --add-port=8000/tcp 
firewall-cmd --reload 

यह मेरे लिए काम करता है! (हालांकि मुझे कोई विचार नहीं था कि मुझे ऐसा क्यों करना पड़ा)

+0

यह मेरे लिए CENTOS7 पर काम किया। फ़ायरवॉल-सेमीडी का उपयोग कर फ़ायरवॉल पर इस बंदरगाह को खोलने से पहले, परीक्षण पृष्ठ ec2 - ### - ## - ## - ##। Compute-1.amazonaws.com:8000 से पहुंच योग्य नहीं था। कोशिश करने के तुरंत बाद अस्तित्व में popped। – eculeus

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