मुझे अभी पता चला है कि मैं पाइथन का उपयोग करके वास्तव में simple web server लिख सकता हूं। मेरे पास पहले से ही एक अपाचे वेब सर्वर है, मैं इस मशीन पर पायथन आधारित वेब सर्वर को आजमा देना चाहता हूं। लेकिन मुझे डर है कि अगर मैं कोशिश करता हूं तो मुझे कुछ प्रकार का संघर्ष मिल सकता है। मेरा मतलब है कि दो वेब सर्वर "निर्णय" कैसे करेंगे, जिन्हें क्लाइंट से अनुरोध करने की आवश्यकता है?क्या मैं एक ही कंप्यूटर पर दो वेब सर्वर चला सकता हूं?
उत्तर
उन्हें विभिन्न बंदरगाहों को सुनें और आप ठीक होंगे।
डिफ़ॉल्ट वेब पोर्ट 80 है। जब आप पोर्ट को निर्दिष्ट किए बिना ब्राउज़र में कुछ यूआरएल खोलते हैं, तो 80 डिफ़ॉल्ट रूप से उपयोग किया जाता है।
आप एक अलग बंदरगाह को सुनने के लिए अपने वेब सर्वर कॉन्फ़िगर कर सकते हैं, लेकिन फिर आप भी यूआरएल में स्पष्ट रूप से यह निर्दिष्ट करने के लिए की आवश्यकता होगी:
http://localhost:8080
जब एक बंदरगाह भुगतान ध्यान चुनने इस विशेष पोर्ट संख्या नहीं है कि अभी तक आपके द्वारा इंस्टॉल किए गए किसी भी सॉफ़्टवेयर द्वारा उपयोग में और आपके बॉक्स पर चल रहा है। अन्यथा, जैसा कि आपने सही ढंग से अनुमान लगाया है, एक संघर्ष होगा।
पीएस बस कुछ दिन पहले पुनर्स्थापित करने के बाद मुझे आईआईएस शुरू करने में सक्षम नहीं था (प्रतीत होता है बिना कारण के)। स्काइप के नए संस्करण को इस डिफ़ॉल्ट बंदरगाह पर कब्जा कर लिया! इसकी सेटिंग को हटा देना था "आने वाले कनेक्शन के विकल्प के रूप में पोर्ट 80 और 443 का उपयोग करें"।
ठीक है। क्या वेब ब्राउज़र द्वारा उपयोग किया जाने वाला एक डिफ़ॉल्ट पोर्ट है? जब मैं एक विशिष्ट वेब सर्वर पर एक वेब पेज खोलने का प्रयास करता हूं तो क्या मैं पोर्ट निर्दिष्ट कर सकता हूं? – Roman
डिफ़ॉल्ट HTTP पोर्ट 80 है। आप यूआरएल में पोर्ट्स निर्दिष्ट कर सकते हैं: 'http: // yourserver: portnumber'। –
HTTPS के लिए HTTP 443 के लिए डिफ़ॉल्ट 80 है। आप – Ofir
यदि आप दो या दो से अधिक वेब सर्वर बनाना चाहते हैं, तो आप एक ही बंदरगाह (जो डिफ़ॉल्ट 80 है) में दो वेब सर्वर नहीं खोल सकते हैं, आपको विभिन्न बंदरगाहों का उपयोग करना होगा।
यदि आप एक DNS का उपयोग कर रहे हैं, तो आप विभिन्न वेब साइटों के साथ अलग-अलग अनुरोधों के जवाब देने के लिए आसानी से अपना वेब सर्वर सेट कर सकते हैं, जो उपयोगी हो सकता है यदि आपको सबडोमेन या विभिन्न डोमेन के लिए अलग-अलग वेब साइटें हों।
HTTP/1.1 जीतने के लिए वास्तव में –
जीतने के लिए एक अलग निर्दिष्ट कर सकते हैं, HOST-HEADER जय हो! – Dal
एक वेब सर्वर एक विशिष्ट पोर्ट से जुड़ा हुआ है। आम तौर पर, यह पोर्ट 80 है। यदि पोर्ट स्पष्ट रूप से निर्दिष्ट नहीं है, तो वह पोर्ट है जो ब्राउज़र हिट करने का प्रयास करेगा।
आप अपने वैकल्पिक सर्वर को एक अलग बंदरगाह पर चलाने के लिए प्राप्त कर सकते हैं (8080 या 8081 वेब सर्वर के लिए लोकप्रिय अलर्ट प्रतीत होता है, लेकिन पसंद तुम्हारा है)।
यह संघर्ष होने से रोक देगा। पोर्ट 80 पर जाने वाली हर चीज आपके पुराने सर्वर को हिट करती है। सब कुछ 8080 (या जो भी पोर्ट आप अपने सर्वर को चलाने का फैसला करते हैं) पर जा रहा है, आपके सरल पायथन सर्वर को हिट करेगा।
वेबसर्वर को जो एक कनेक्शन अनुरोध सेवाओं में कोई बात कहने का होता है (इस कार्य को ऑपरेटिंग सिस्टम के स्तर पर अभी भी है) -:
आपके अन्य सर्वर हिट करने के लिए, एक ऐसा URL का उपयोग करें। इसके अलावा, विशेष सॉकेट विकल्पों के बिना, सॉकेट इंटरफेस, इंटरनेट पता और बंदरगाह के अद्वितीय संयोजन के लिए बाध्य होना चाहिए।
मैं सुझाव दूंगा कि आप https (पोर्ट 443) अनुरोधों की सेवा करने के लिए एक सर्वर समर्पित करें।
इस तरह से आप बंदरगाह संघर्ष से बच सकते हैं अन्य लोगों ने भी उल्लेख किया है कि उपयोगकर्ताओं को अपने ब्राउज़र (मनमाना बंदरगाह संख्या) में कुछ भी अजीब टाइप करने की आवश्यकता नहीं है। आप प्रत्येक सर्वर को यातायात को दूसरे पर भी रीडायरेक्ट कर सकते हैं (उदाहरण के लिए http सर्वर एक होस्ट नाम के लिए एक http अनुरोध प्राप्त करता है जिसे वह https सर्वर हैंडल जानता है ताकि यह उसी होस्ट नाम के साथ https को अनुरोध को रीडायरेक्ट कर सके, जिससे अनुरोध को स्थानांतरित किया जा सके उचित सर्वर)।
सर्वर एक:
http://localhost
सर्वर बी:
https://localhost
आप वास्तव में अलग-अलग सर्वर को चलाने के लिए सर्वर सॉफ्टवेयर का परीक्षण करने के लिए अन्य उत्तर देखने चाहते हैं, लेकिन ...
ऐसा लगता है (क्योंकि आप एक डेवलपर हैं, एक sysadmin सही नहीं है?) आप वास्तव में बस एक ही कंप्यूटर पर पायथन और PHP साइटों को चलाने के लिए चाहते हैं। तो, अगर मैं आपके प्रश्न में पढ़ रहा हूं तो मुझे माफ़ कर दो, लेकिन यह सेटअप मुझे एक ही कंप्यूटर पर एक ही बंदरगाह (पोर्ट 80) के साथ एक ही कंप्यूटर, अपाचे में एक ही कंप्यूटर पर दोनों प्रकार की साइटों को चलाने की अनुमति देता है। और उन्हें 127.0.0.1 को इंगित:
मैं/मेजबान फ़ाइल (\ Windows \ System32 \ drivers \ etc \ Windows पर मेजबान या सी): मेरे/आदि में नई प्रविष्टियां बनाने तब
127.0.0.1 localhost
# development projects
127.0.0.1 somephpsite.com.local
127.0.0.1 www.somephpsite.com.local
127.0.0.1 otherpythonsite.com.local
127.0.0.1 www.otherpythonsite.com.local
अपाचे में मैं प्रत्येक साइट के लिए VirtualHosts जोड़ें:
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
<Directory "/Users/Robert/Projects/SomeSite/somephpsite.com">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
DocumentRoot "/Users/Robert/Projects/SomeSite/somephpsite.com"
ServerName somephpsite.com.local
ServerAlias www.somephpsite.com.local
ErrorLog "/Users/Robert/Projects/SomeSite/error.log"
CustomLog "/Users/Robert/Projects/SomeSite/access.log" common
</VirtualHost>
<VirtualHost *:80>
<Directory "/Users/Robert/Projects/OtherSite/otherpythonsite.com">
Order allow,deny
Allow from all
</Directory>
DocumentRoot "/Users/Robert/Projects/OtherSite/otherpythonsite.com/static"
Alias /(.*(\.css|\.gif|\.ico|\.jpg|\.js|\.pdf|\.txt)) /Users/Robert/Projects/OtherSite/otherpythonsite.com/static/$1
WSGIScriptAlias//Users/Robert/Projects/OtherSite/otherpythonsite.com/wsgi.py
ServerName otherpythonsite.com.local
ServerAlias www.otherpythonsite.com.local
ErrorLog "/Users/Robert/Projects/OtherSite/error.log"
CustomLog "/Users/Robert/Projects/OtherSite/access.log" common
</VirtualHost>
तो, PHP साइटों DocumentRoot
में चलाने की तरह वे हमेशा करते हैं। और पाइथन साइटें डब्लूएसजीआई में चलती हैं। और वे दोनों अपाचे में दौड़ते हैं। फिर परीक्षण करने के लिए, मैं अपने स्थानीय प्रतिलिपि पर काम करने के लिए उपयोग कर रहे किसी भी ब्राउज़र में ".local" जोड़ता हूं।
+1, प्रश्न का उत्तर नहीं देता है लेकिन फिर भी उपयोगी और प्रासंगिक है। – AlexMA
बस मुझे क्या चाहिए! कोई भी कभी भी पोर्ट नंबर में उपयोगकर्ताओं को टाइप क्यों करना चाहेगा? –
बस अगर किसी को दो अलग-अलग वेब सर्वर की आवश्यकता होती है। उदाहरण के लिए एक नोड.जेएस ऐप और एक पीएचपी ऐप, दोनों सार्वजनिक। यदि ये दोनों एक ही सर्वर पर हैं, तो इनमें से एक को अलग-अलग बंदरगाह को सुनना चाहिए। – Akis
- 1. क्या मैं मोबाइल प्लेटफ़ॉर्म पर HTTP सर्वर चला सकता हूं?
- 2. क्या मैं एक ही एपहॉर्बर साइट पर एक एमवीसी ऐप और डब्ल्यूसीएफ वेब एपीआई चला सकता हूं?
- 3. क्या मैं एक ही कंप्यूटर पर विजुअल स्टूडियो के दो अलग-अलग संस्करण स्थापित कर सकता हूं?
- 4. क्या मैं टॉमकैट पर .jar फ़ाइल चला सकता हूं?
- 5. मैं एक Mercurial सर्वर कैसे चला सकता हूं?
- 6. मैं अपने वेब सर्वर पर पाइथन स्क्रिप्ट कैसे चला सकता हूं?
- 7. मैं एक अपाचे सर्वर पर Django और PHP को एक साथ कैसे चला सकता हूं?
- 8. क्या PHP में कोई गिटब क्लोन है जिसे मैं अपने सर्वर पर चला सकता हूं?
- 9. क्या मैं विंडोज़ पर py2app चला सकता हूं?
- 10. मैं एक अलग थ्रेड पर सेवा कैसे चला सकता हूं?
- 11. क्या मैं एक ही सर्वर पर एक कर्ल अनुरोध कर सकता हूं?
- 12. क्या मैं किसी ऑब्जेक्ट पर अपरकेस विधि चला सकता हूं?
- 13. क्या अधिकतम डाटा/गति एक ही कंप्यूटर
- 14. क्या मैं कई मशीनों पर एफ # एजेंट चला सकता हूं?
- 15. क्या मैं सीएसएस के साथ एक ही तत्व पर दो पृष्ठभूमि छवियां सेट कर सकता हूं?
- 16. मैं फास्ट स्कैला कंपाइलर रिमोट सर्वर कैसे चला सकता हूं?
- 17. एक ही सर्वर पर दो PHP अनुप्रयोगों के बीच संचार?
- 18. क्या मैं एक कंप्यूटर पर एक आईफोन ऐप संकलित कर सकता हूं और इसे दूसरे पर हस्ताक्षर कर सकता हूं?
- 19. मैं एक .exe कैसे चला सकता हूं लेकिन एक ही कमांड विंडो में रहता हूं (नया नहीं खोलता)?
- 20. मैं उसी सर्वर पर एक ही कोड बेस के साथ PHP में एकाधिक वेबसाइट कैसे चला सकता हूं?
- 21. मैं एक निजी सर्वर पर जीएई आवेदन कैसे चला सकता हूं?
- 22. मैं रेल सर्वर डिमन कैसे चला सकता हूं?
- 23. मैं एक ही मशीन पर आईआईएस और एसक्यूएल सर्वर कब होस्ट कर सकता हूं?
- 24. मैं कक्षा कोड पर अपना कोड कैसे चला सकता हूं?
- 25. दो यूडीपी-सर्वर एक ही बंदरगाह पर सुनते हैं?
- 26. स्थानीय कंप्यूटर पर वेब सर्वर की नकल 'धीमा'
- 27. मैं रूबी जेम कैसे चला सकता हूं?
- 28. मैं कोई प्रोग्राम कैसे चला सकता हूं?
- 29. एसएसएल: क्या मैं एक ही सर्वर पर वेब और मेल सेवाओं दोनों के लिए एक ही SSL प्रमाणपत्र का उपयोग कर सकता हूं?
- 30. मैं समय-समय पर सेवा विधि कैसे चला सकता हूं?
एफडब्ल्यूआईडब्ल्यू, पायथन में एक अंतर्निहित वेब सर्वर मॉड्यूल (SimpleHTTPServer) है। इसका डिफ़ॉल्ट पोर्ट 8000 है। आप इसे कमांड लाइन में कमांड लाइन में चला सकते हैं: python -m SimpleHTTPServer – ianalis