2012-01-11 10 views
5

मैं समझना चाहता हूं कि कैसे वेबसर्वर (उदाहरण के लिए: nginx) और cgi/fastcgi एक दूसरे के साथ संवाद करते हैं। वेबसर्वर सीजीआई स्क्रिप्ट को सीजीआई प्रक्रिया में कैसे पास करता है और सीजीआई प्रक्रिया अनुरोध का जवाब कैसे देती है।वेबसर्वर और सीजीआई प्रक्रिया एक-दूसरे के साथ कैसे संवाद करती है?

Nginx में, हम nginx php-एफ पी एम

location/{ 
      root /home/service/public_html; 
      fastcgi_pass unix:/tmp/php-fpm-test.socket; 
      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME /home/service/public_html/index.php; 
      include  fastcgi_params; 
     } 

यह कैसे काम करता है के लिए PHP स्क्रिप्ट गुजरता है यह बताने के लिए इस तरह कॉन्फ़िगर?

संपादित करें: अगर कोई मुझे छद्म कोड का एक टुकड़ा एक प्रक्रिया (या जो भी) और php-एफ पी एम यूनिक्स सॉकेट के बीच संचार का वर्णन करने के दे सकता है इस बात की सराहना की जाएगी।

उत्तर

2

एक सीजीआई एप्लिकेशन केवल एक मानक निष्पादन योग्य या स्क्रिप्ट है - वेब सर्वर के लिए प्रत्येक HTTP अनुरोध उस निष्पादन योग्य या स्क्रिप्ट के एक निष्पादन/उदाहरण से मेल खाता है जहां अनुरोध के बारे में जानकारी पास करने के लिए पर्यावरण चर का उपयोग किया जाता है (जैसे अनुरोध यूआरएल और अनुरोध विधि) और HTTP अनुरोध निकाय मानक इनपुट पर पारित किया जाता है। स्क्रिप्ट/निष्पादन योग्य वेब सर्वर पर मानक आउटपुट स्ट्रीम के माध्यम से कच्चे HTTP output पास करता है।

एक CGI आवेदन की एक उदाहरण के लिए एक उदाहरण के पर्ल स्क्रिप्ट के लिए wikipedia page देख सकते हैं और अधिक विस्तार के लिए एक के माध्यम से की CGI specification


फास्ट सीजीआई सीजीआई इंटरफ़ेस की भूमि के ऊपर कम करने की कोशिश है पढ़ा है - एक नई प्रक्रिया शुरू करने के रूप में कई ऑपरेटिंग सिस्टम पर अपेक्षाकृत महंगा काम है, फास्ट सीजीआई कई HTTP अनुरोधों को संभालने के लिए एक लंबी दौड़ वाली फास्ट सीजीआई प्रक्रिया को अनुमति देकर इसे कम करने का प्रयास करता है।

हालांकि फास्ट सीजीआई के कई हिस्सों सीजीआई (उदाहरण के लिए वातावरण चर का प्रारूप) के समान है, फास्ट सीजीआई सभी जानकारी मानक इनपुट स्ट्रीम के माध्यम से पारित हो जाता है के साथ कर रहे हैं।

आपको अधिक जानकारी के लिए Fast CGI website पर देखने का प्रयास करना चाहिए - विशेष रूप से फास्ट सीजीआई विनिर्देश वहां पर है और यह सब विस्तार से बताता है।

+0

मुझे लगता है कि यह इतना नहीं है कि नई प्रक्रियाएं महंगी हैं क्योंकि सीजीआई कार्यक्रमों को एक बड़े पैमाने पर जटिल प्रक्रियाओं जैसे पर्ल दुभाषिया शुरू करने की आवश्यकता होती है। मैंने हाल ही में सी में लिखे गए एक बहुत ही कम से कम सीजीआई कार्यक्रम के साथ प्रयोग किया [सीजीआई ट्रैम्पोलिन] (http://gcbenison.wordpress.com/2012/04/23/deploying-a-checheme-web-plication-the-taubatron/) । इस छोटी प्रक्रिया को शुरू करने के कारण विलंबता बहुत कम है। – gcbenison

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