2009-01-31 12 views
8

मैं हाल ही में छोटे wsgi ऐप्स की एक उचित संख्या लिख ​​रहा हूं और एक वेब सर्वर ढूंढने के लिए देख रहा हूं जिसे वितरित किया जा सकता है, विशिष्ट ऐप चलाने के लिए पूर्व कॉन्फ़िगर किया गया है। मुझे पता है कि मोड़ और चेरीपी जैसी चीज़ें हैं जो wsgi ऐप्स को सेवा दे सकती हैं, लेकिन वे मेरे लिए कार्यक्षमता का एक महत्वपूर्ण टुकड़ा गायब लगते हैं, जो http रेंज हेडर का उपयोग करके बड़ी फ़ाइलों को "छद्मस्ट्रीम" करने की क्षमता है। क्या कोई वेब सर्वर बीएसडी या इसी तरह के लाइसेंस के तहत उपलब्ध है जिसे किसी भी प्रमुख प्लेटफ़ॉर्म पर स्टैंडअलोन निष्पादन योग्य के रूप में वितरित किया जा सकता है जो aa wsgi सर्वर (जैसे चेरीपी या जैसे) को प्रॉक्सी करने में सक्षम है और http का उपयोग करके बड़ी फ़ाइलों की सेवा करता है रेंज हेडर?न्यूनतम, स्टैंडअलोन, वितरित, क्रॉस प्लेटफ़ॉर्म वेब सर्वर

उत्तर

3

अपाचे + mod_wsgi के साथ क्या गलत है? अपाचे पहले से ही मल्टीप्लेटफार्म है; यह अक्सर पहले से स्थापित है (विंडोज़ को छोड़कर)।

आप lighttpd को भी देखना चाहते हैं, कुछ ब्लॉग्स इसे डब्लूएसजीआई के साथ काम करने के लिए कॉन्फ़िगर करने पर हैं। http://cleverdevil.org/computing/24/python-fastcgi-wsgi-and-lighttpd देखें, और http://redmine.lighttpd.net/issues/show/1523

+0

अपाचे के साथ वास्तव में "गलत" कुछ भी नहीं है, यह एक महान सर्वर है, लेकिन मैं कुछ ऐसा ढूंढ रहा हूं जिसे मैं अपने अनुप्रयोग के साथ वितरित कर सकता हूं, पूर्व-कॉन्फ़िगर किए गए राज्य में , ताकि यह किसी भी प्लेटफ़ॉर्म पर बॉक्स से बाहर हो (मुझे एहसास हो कि इसे प्रति प्लेटफ़ॉर्म पर एक अलग "बॉक्स" की आवश्यकता होगी, लेकिन यह ठीक है)। – user61000

5

लाइटपैड में बीएसडी लाइसेंस है, इसलिए यदि आप चाहें तो इसे बंडल करने में सक्षम होना चाहिए।

आप इसे छोटे ऐप्स के लिए कहते हैं, तो मुझे लगता है कि इसका मतलब है कि छोटे, स्थानीय, एकल उपयोगकर्ता वेब इंटरफेस को एक छोटे से http सर्वर द्वारा परोसा जा रहा है? यदि ऐसा है, तो किसी भी पायथन कार्यान्वयन काम करना चाहिए। पैकेज करने के लिए बस py2exe जैसे कुछ का उपयोग करें (वास्तव में, बहुत पहले बहुत पहले पैकेजिंग पायथन प्रोग्राम से संबंधित कोई प्रश्न नहीं था)।

अद्यतन, पुन: श्रेणी शीर्षलेख: डिफ़ॉल्ट पायथन http सर्वर आपके इच्छित इच्छित हेडर का समर्थन नहीं कर सकता है, लेकिन तर्क करने के लिए अपने स्वयं के हैंडलर, या एक छोटे wsgi ऐप को लिखना बहुत आसान है, खासकर यदि आप सभी एक फाइल स्ट्रीम कर रहा है। यह बहुत अधिक लाइन नहीं होगी:

def stream_file(environ, start_response): 
    fp = open(base_dir + environ["PATH_INFO"]) 
    fp.seek(environ["HTTP_CONTENT_RANGE"]) # just an example 
    start_response("200 OK", (('Content-Type', "file/type"))) 
    return fp