2009-07-29 12 views
18

मैं आज चेरोकी पर डीजेंगो (एससीजीआई का उपयोग करके) स्थापित कर रहा था, और मैंने देखा कि the Django docs कहता है कि आप वेबसर्वर और डीजेगो के बीच संचार के लिए मेजबान/बंदरगाह संयोजन या सॉकेट का उपयोग कर सकते हैं।सॉकेट पर बंदरगाह बनाम फास्टसीजीआई

केवल एक चीज है वे इस मामले पर कहना है

क्या आप चुनते प्राथमिकता का ढंग है, अनुमतियों के मुद्दों के कारण आमतौर पर एक टीसीपी सॉकेट आसान होता है।

(संयोग से, मुझे सॉकेट के साथ ऐसा करने की अनुमति है, लेकिन होस्ट के साथ नहीं :)।)

मुझे अस्पष्टता से याद है कि सॉकेट मेरे सिस्टम प्रोग्रामिंग क्लास से कैसे काम करते हैं, लेकिन मैं वास्तव में उत्सुक हूं कि दोनों के बीच प्रभावी अंतर क्या है। किसी भी समय कुछ विकल्प है, इस मामले पर एक राय के साथ कोई है, इसलिए मैं इसे प्राप्त करने की उम्मीद कर रहा था। विशेष रूप से, क्या कोई प्रदर्शन अंतर है?

या, यदि यह वास्तव में कोई फर्क नहीं पड़ता है, तो मुझे कुछ पुष्टि चाहिए, इसलिए मैं अपने प्रोग्रामिंग के साथ जारी रख सकता हूं और इस sysadmin-y सामान को अनदेखा कर सकता हूं।

+0

एक टीसीपी सॉकेट और सॉकेट नामक एक यूनिक्स दोनों सॉकेट होंगे। आपको किसके साथ समस्या है? – Thomas

+0

यह थोड़ी देर पहले था, लेकिन मुझे याद है कि मेरे फाइल सिस्टम पर एक .sock फ़ाइल पर एक lighttpd को इंगित करना है, जो नामित सॉकेट है, है ना? उह, मुझे इस सामान पर और अधिक पढ़ने की जरूरत है। –

उत्तर

36

एक यूनिक्स सॉकेट फ़ाइल सिस्टम में फ़ाइल के रूप में प्रशासित है। आपको उपयोगकर्ता/समूह मूल्यों और अनुमतियों को सही ढंग से सेट करने की आवश्यकता है। यह आपके द्वारा उपयोग किए जा रहे किसी भी जेलरोट में भी होना चाहिए (पोस्टफिक्स + mysql का उपयोग करते समय एक सामान्य त्रुटि)।

आप ऐसा करने के लिए TCP सॉकेट के लिए है कि, जब तक आप बाँध के रूप में एक बंदरगाह की जरूरत नहीं है> 1000

एक यूनिक्स सॉकेट थोड़ा तेजी से माना जा सकता है, क्योंकि यह एक नेटवर्क प्रोटोकॉल है और इस तरह छोड़ने की जरूरत नहीं है नेटवर्क ढेर, लेकिन एक मशीन तक ही सीमित है। दूसरी तरफ टीसीपी आपको विभिन्न मेजबानों पर चल रही सेवाओं से जुड़ने देता है।

+21

पोर्ट> 1023 वास्तव में – Thomas

6

वास्तविक अंतर मुझे लगता है कि यदि आपके पास अल्पकालिक कनेक्शन के साथ वास्तव में उच्च कनेक्शन दर है तो आप बंदरगाहों से बाहर निकल सकते हैं क्योंकि टीसीपी के साथ थोड़ी देर के लिए उपयोग किए गए बंदरगाह TIME_WAIT स्थिति में समाप्त होते हैं। नामित सॉकेट के साथ ऐसा नहीं है।

यदि मैं जानता हूं कि इसका उपयोग स्थानीय होस्ट द्वारा ही किया जाएगा, तो मैं स्थानीय कनेक्शन के लिए नामित सॉकेट का उपयोग करूंगा। लेकिन इस उपयोग के लिए .... हाँ यह वास्तव में कोई फर्क नहीं पड़ता। प्रदर्शन के अनुसार या अन्यथा नहीं। यदि आप अपना मन बदलते हैं तो बाद में बदलना आसान है। यदि आप उस विकल्प का उपयोग करते हैं तो बस टीसीपी पोर्ट को फ़ायरवॉल करना सुनिश्चित करें।

और फिर, एक टीसीपी सॉकेट भी एक सॉकेट है।

+0

सहायक, धन्यवाद! –

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