मैंने एक वेब.py अनुप्रयोग बनाया है, और अब यह तैनात करने के लिए तैयार है, मैं web.py के अंतर्निर्मित वेबसर्वर पर नहीं चलना चाहता हूं। मैं अपने आवेदन कोड को बदलने के बिना, विभिन्न वेबसर्वर, अपाचे या आईआईएस पर इसे चलाने में सक्षम होना चाहता हूं। यह वह जगह है जहां डब्लूएसजीआई आना चाहिए, अगर मैं इसे सही ढंग से समझता हूं।
हालांकि, मुझे समझ में नहीं आता कि मुझे डब्ल्यूएसजीआई सर्वर पर अपना आवेदन तैनाती करने के लिए क्या करना है? अधिकांश उदाहरण मानते हैं कि आप पिलोन/डीजेगो/अन्य-फ्रेमवर्क का उपयोग कर रहे हैं, जिस पर आप बस कुछ जादू कमांड चलाते हैं जो आपके लिए सबकुछ ठीक करता है।
web.application(...).run()
चलाने के बजाय, मुझे (काफी संक्षिप्त) web.py दस्तावेज़ों के बारे में क्या समझता है, मुझे web.application(...).wsgifunc()
का उपयोग करना चाहिए। और फिर क्या?WSGI के साथ एक वेब.py अनुप्रयोग को तैनात करना, कई सर्वर
उत्तर
सटीक रूप से आपको एक विशिष्ट WSGI होस्टिंग तंत्र के साथ होस्ट करने के लिए क्या करना है सर्वर के साथ बदलता है।
अपाचे/mod_wsgi और फ़्यूज़न पैसेंजर के मामले में, आपको बस एक डब्लूएसजीआई स्क्रिप्ट फ़ाइल प्रदान करने की आवश्यकता है जिसमें 'एप्लिकेशन' नामक ऑब्जेक्ट शामिल है। Web.py 0.2 के लिए, यह उचित तर्क के साथ web.wsgifunc() को कॉल करने का परिणाम है। Web.py 0.3 के लिए, आप web.application() द्वारा लौटाए गए ऑब्जेक्ट के wsgifunc() सदस्य फ़ंक्शन का उपयोग करते हैं। इन के विवरण mod_wsgi दस्तावेज़ देखें के लिए:
http://code.google.com/p/modwsgi/wiki/IntegrationWithWebPy
आप FastCGI उपयोग करने के लिए हो रही है के बजाय, इस तरह के Lighttpd, nginx या चेरोकी के रूप में एक सर्वर के लिए SCGI या AJP एडेप्टर, तो आप 'flup' पैकेज का उपयोग करने की आवश्यकता है उन भाषा अज्ञेय इंटरफेस और डब्लूएसजीआई के बीच एक पुल प्रदान करने के लिए। इसमें एक ही डब्लूएसजीआई एप्लीकेशन ऑब्जेक्ट के साथ फ्लूप फ़ंक्शन को कॉल करना शामिल है, जो कि mod_wsgi या फ़्यूज़न पैसेंजर जैसे कुछ पुल की आवश्यकता के बिना सीधे उपयोग करेगा। यह देखने की जानकारी के लिए:
http://trac.saddi.com/flup/wiki/FlupServers
खास बात तो यह है कि यह अपने स्वयं के मॉड्यूल का सेट निहित है अपने वेब अनुप्रयोग की संरचना करने के लिए है। किसी विशेष सर्वर के साथ काम करने के लिए, उस सर्वर के लिए आवश्यकतानुसार और आपके एप्लिकेशन कोड के बीच पुल करने के लिए आवश्यक एक अलग स्क्रिप्ट फ़ाइल बनाएं। आपका एप्लिकेशन कोड हमेशा वेब सर्वर दस्तावेज़ निर्देशिका से बाहर होना चाहिए और केवल स्क्रिप्ट फ़ाइल जो पुल के रूप में कार्य करती है, यदि उपयुक्त हो तो सर्वर दस्तावेज़ निर्देशिका में होगी।
21 जुलाई 2009 के रूप में, कि flup, FastCGI, अपाचे और अधिक चर्चा करता the webpy install site पर एक बहुत संपूर्ण अधिष्ठापन गाइड, है। मेरे पास अभी तक ने को आजमाया नहीं है, लेकिन ऐसा लगता है कि यह अधिक विस्तृत है।
यहाँ दो होस्ट किए गए एप्लिकेशन cherrypy WSGI सर्वर का उपयोग करने का एक उदाहरण है:
#!/usr/bin/python from web import wsgiserver import web # webpy wsgi app urls = ( '/test.*', 'index' ) class index: def GET(self): web.header("content-type", "text/html") return "Hello, world1!" application = web.application(urls, globals(), autoreload=False).wsgifunc() # generic wsgi app def my_blog_app(environ, start_response): status = '200 OK' response_headers = [('Content-type','text/plain')] start_response(status, response_headers) return ['Hello world! - blog\n'] """ # single hosted app server = wsgiserver.CherryPyWSGIServer( ('0.0.0.0', 8070), application, server_name='www.cherrypy.example') """ # multiple hosted apps with WSGIPathInfoDispatcher d = wsgiserver.WSGIPathInfoDispatcher({'/test': application, '/blog': my_blog_app}) server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8070), d) server.start()
- 1. विजुअलस्टूडियो 2005 अनुप्रयोग के साथ MySQL सर्वर को तैनात करें
- 2. वेब.py
- 3. gevent WSGI सर्वर
- 4. निर्भरताओं के साथ एक Django ओपनसॉर्स एप्लिकेशन को तैनात करना
- 5. अनुप्रयोग सर्वर
- 6. तैनात एकाधिक सर्वर (EC2)
- 7. एक अनुप्रयोग सर्वर में थ्रेडिंग
- 8. रेल ऐप के कई उदाहरणों को तैनात करना - एक ही कोड, एकाधिक
- 9. जावा सर्वर अनुप्रयोगों को तैनात करना नहीं है। Wars
- 10. विभिन्न सेटिंग्स के साथ कई भंडारों में मेवेन आर्टिफैक्ट को तैनात करना
- 11. alwaysdata.com पर Django को तैनात करना
- 12. एक अनुप्रयोग के साथ विंडोज मोनो रनटाइम को बंडल करना
- 13. प्रोग्रामेटिक रूप से अनुप्रयोग सर्वर को नियंत्रित करना
- 14. धीमी क्यूटीसीपी सर्वर एक साथ कई ग्राहकों के साथ
- 15. .NET अनुप्रयोग सर्वर बनाम जावा अनुप्रयोग सर्वर
- 16. WSGI बाइट
- 17. लाइब्रेरी के साथ एक पाइथन अनुप्रयोग को स्रोत के रूप में कैसे आगे निर्भरता के साथ तैनात करने के लिए?
- 18. हॉट पर एक सर्वर के अनुप्रयोग को डाउनटाइम को कम करने या हटाने के लिए जावा ईएआर को तैनात करें?
- 19. जावा फ़ाइलों को तैनात करना
- 20. जब भी सर्वर पर कई परियोजनाओं के साथ क्रोन
- 21. बैकबोनजेस के साथ शुरू करना - सर्वर को
- 22. पायथन अनुप्रयोगों को तैनात करना
- 23. आईआईएस के तहत आप एक पायथन wsgi सर्वर कैसे स्थापित करते हैं?
- 24. कई इंटरफेस (लिनक्स) के साथ एक सर्वर पर मल्टीकास्ट प्राप्त
- 25. WSGI एप्लिकेशन
- 26. साझा कैश और सत्रों के साथ एकाधिक Grails उदाहरणों को तैनात करना?
- 27. जावा वेब अनुप्रयोग चलाने के लिए एक सर्वर की स्केलेबिलिटी
- 28. वेबस्पेयर अनुप्रयोग सर्वर 7.0 पर एक यूआरएल संसाधन स्थापित करना?
- 29. बीटा परीक्षण के लिए एएसपी.नेट एमवीसी अनुप्रयोग को सुरक्षित करना?
- 30. कई एंड्रॉइड गतिविधियों को एक साथ बंद करना
ठीक है, इसलिए कोई सामान्य तरीके से यह करने के लिए है। अफ़सोस की बात है। मुझे बस एडाप्टर का एक गुच्छा लिखना होगा। वैसे भी धन्यवाद! – carlpett