2012-08-06 21 views
9

पर वेबसाइटॉक कनेक्शन कनेक्शन विफलता मेरे पास नेट नेट सर्वर सर्वर पर रीयल-टाइम अधिसूचना प्रणाली के लिए वायुमंडल ढांचा चला रहा है।अमेज़ॅन ec2

सिस्टम मेरी स्थानीय मशीन पर पूरी तरह से काम करता है, लेकिन जब मैं इसे ईसी 2 पर तैनात करता हूं, तो यह काम नहीं करता है। हालांकि मैं रिमोट नेटटी सर्वर पर टेलनेट करने में सक्षम हूं। सर्वर पहुँचा जा सकता है और बंदरगाहों EC2 पर खुले हैं

फ़ायरफ़ॉक्स निम्न त्रुटि

Using URL: ws://beta.myapp.com:2880/myhandle?id=1&name=Chinese_food_rule_2& X-Atmosphere-tracking-id=35490c47-59d6-abf6-36fa-431aa340d90a&X-Atmosphere-Framework=0.9&X-Atmosphere-Transport=websocket&X-Cache-Date=0&Content-Type=application/json 

Websocket error, reason: undefined 

Firefox can't establish a connection to the server at ws://beta.myapp.com:2880/myhandle?id=1&name=Chinese_food_rule_2&X-Atmosphere-tracking-id=35490c47-59d6-abf6-36fa-431aa340d90a&X-Atmosphere-Framework=0.9&X-Atmosphere-Transport=websocket&X-Cache-Date=0&Content-Type=application/json. 

Websocket closed, reason: Connection was closed abnormally (that is, with no close frame being sent). 

सर्वर भी एक अनुरोध प्राप्त नहीं होता है फेंकता है, यह मेरे लिए सुराग को लगता है कि यह कुछ EC2 वेब सॉकेट पकड़ लिया है जो मैं मुझे पता नहीं है

+2

क्या आपके पास फ़ायरवॉल सेटअप है ताकि 2880 खुला हो? – Veebs

उत्तर

0

एनसी (कमांडलाइन लिनक्स/ओएसएक्स) के साथ आप आसानी से जांच सकते हैं कि आपके बंदरगाह ऊपर और चल रहे हैं या नहीं।

nc -z www.google.com 80 

यदि नहीं, तो अपने सुरक्षा समूहों की जांच करें। ईसी 2 पर लॉग इन करें:

नेटवर्क के तहत बाएं & सुरक्षा: सुरक्षा समूह -> डिफ़ॉल्ट -> इनबाउंड खोलें। वहां आप नए नियम बना सकते हैं।

6

क्या आप ईएलबी का उपयोग कर रहे हैं? यदि हां, तो आपको HTTP की बजाय टीपीसी पर स्विच करने की आवश्यकता होगी क्योंकि HTTP परत में websockets समर्थित नहीं है। टीसीपी चलाने पर आप चिपचिपापन और क्लाइंट आईपी को पुनः प्राप्त करने की संभावना खो देंगे लेकिन वेबसाइट्स सभी तरह से काम करेंगे। =) पर EC2/ईएलबी/WebSockets

अधिक जानकारी:
http://johan.firebase.co/post/31047804966/the-state-of-websockets-ssl-and-sticky-sessions-in
http://johan.heapsource.com/post/31047804966/the-state-of-websockets-ssl-and-sticky-sessions-in

+2

http://johan.heapsource.com/post/31047804966/the-state-of-websockets-ssl-and-sticky-sessions-in – bendytree

0

WebSocket http के रूप में ही बंदरगाह का उपयोग कर रहा है।

हालांकि, 4.0 से कम नेटटी सर्वर संस्करण वेबसॉकेट के नए संस्करण का समर्थन नहीं करता है।

http://netty.io/news/2011/11/17/websockets.html

क्या संस्करण का उपयोग कर रहे हैं?

2

मुझे यह समस्या php में मिली। समाधान है: ईसी 2 के अपने निजी आईपी पते का उपयोग कर वेबस्केट बनाएं। और वेब सॉकेट पोर्ट के साथ अपने EC2 सार्वजनिक आईपी एड्रेस या यूआरएल का उपयोग कर कि WebSocket कनेक्ट

आप EC2 वेब सॉकेट से प्रतिसाद मिलेगा

+0

यह कैसे करें? मैं पाइथन + टॉरनाडो का उपयोग कर रहा हूँ। यह स्थानीय मशीन में अच्छी तरह से काम करता है लेकिन ईसी 2 उबंटू में नहीं। – lonelyloner

0

@ABIRAMAN मुझे निकटतम मिला है।

मैं तो जैसे स्थानीय होस्ट के साथ WebSocket से कनेक्ट कर दिया गया था (HapiJS/एनईएस):

const client = new Nes.Client('ws://localhost:3000')

नीचे के रूप में सार्वजनिक एडब्ल्यूएस आईपी करने के लिए बदल रहा है और यह काम करता है:

const client = new Nes.Client('ws://5.5.5.5:3000')

ध्यान दें कि मैंने अमेज़ॅन के ईसी 2 नियंत्रण कक्ष में 127.0.0.1 और 0.0.0.0/0 को 3000 की अनुमति भी दी है। इसके अलावा, 5.5.5।5 आईपी अमेज़ॅन ने मुझे नहीं दिया है;)

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