ডাব্লুএসজিআই, সিজিআই এবং ফ্রেমওয়ার্কগুলি কীভাবে সংযুক্ত রয়েছে?
অ্যাপাচি 80 পোর্ট শুনে listen এটি একটি HTTP অনুরোধ পায়। এটি প্রতিক্রিয়া জানার উপায় খুঁজতে অনুরোধটিকে পার্স করেছে। অ্যাপাচি সাড়া দেওয়ার জন্য অনেক পছন্দ আছে। প্রতিক্রিয়া জানাতে একটি উপায় হ'ল স্ক্রিপ্ট চালানোর জন্য সিজিআই ব্যবহার করা। সাড়া দেওয়ার আরেকটি উপায় হ'ল সহজভাবে একটি ফাইল পরিবেশন করা।
সিজিআইয়ের ক্ষেত্রে, আপাচি একটি পরিবেশ প্রস্তুত করে এবং স্ক্রিপ্টটি সিজিআই প্রোটোকলের মাধ্যমে প্রার্থনা করে। এটি একটি স্ট্যান্ডার্ড ইউনিক্স ফর্ক / এক্সিকিউটিভ পরিস্থিতি - সিজিআই সাবপ্রসেসটি সকেট এবং স্টডআউট সহ একটি ওএস পরিবেশের উত্তরাধিকার সূত্রে প্রাপ্ত। সিজিআই সাবপ্রসেস একটি প্রতিক্রিয়া লিখেছে, যা অ্যাপাচে ফিরে যায়; অ্যাপাচি ব্রাউজারে এই প্রতিক্রিয়া প্রেরণ করে।
সিজিআই আদিম এবং বিরক্তিকর। বেশিরভাগ কারণ এটি প্রতিটি অনুরোধের জন্য একটি সাবপ্রসেসের কাঁটাচামচ করে, এবং সাবপ্রসেসটি অবশ্যই সাড়া শেষ করতে বা স্ট্ডআউট এবং স্টার্ডার বন্ধ করতে হবে।
ডাব্লুএসজিআই হ'ল একটি ইন্টারফেস যা সিজিআই ডিজাইনের ধরণের উপর ভিত্তি করে। এটি অগত্যা সিজিআই নয় - এটি প্রতিটি অনুরোধের জন্য একটি উপপ্রসেস কাঁটাচামচ করে না। এটি সিজিআই হতে পারে, তবে এটি হওয়ার দরকার নেই।
ডাব্লুএসজিআই বিভিন্ন গুরুত্বপূর্ণ উপায়ে সিজিআই ডিজাইনের ধরণকে যুক্ত করে। এটি আপনার জন্য এইচটিটিপি অনুরোধ শিরোনামকে বিশ্লেষণ করে এবং এগুলি পরিবেশে যুক্ত করে। এটি পরিবেশে কোনও ফাইলের মতো বস্তু হিসাবে কোনও পোস্ট-ওরিয়েন্টেড ইনপুট সরবরাহ করে। এটি আপনাকে এমন একটি ফাংশন সরবরাহ করে যা প্রতিক্রিয়া তৈরি করবে, আপনাকে প্রচুর ফর্ম্যাটিংয়ের বিশদ থেকে রক্ষা করবে।
আমি আমার বেসিক সিজিআই কনফিগারেশনটিতে একটি ওয়েব ফ্রেমওয়ার্ক (ওয়েব.পি বা চেরিপি বলুন) চালাতে চাইলে আমার কী জানতে / ইনস্টল করতে হবে / করতে হবে?
মনে রাখবেন একটি সাবপ্রসেসের কাঁটাচামচ করা ব্যয়বহুল। এটিকে ঘিরে কাজ করার দুটি উপায় রয়েছে।
এমবেডেড mod_wsgi
বা mod_python
এ্যাপাচি ভিতরে পাইথন এম্বেড; কোন প্রক্রিয়া কাঁটাচামচ করা হয় না। অ্যাপাচি সরাসরি জ্যাঙ্গো অ্যাপ্লিকেশনটি চালায়।
ডেমন mod_wsgi
বা mod_fastcgi
অ্যাপাচে ডাব্লুএসজিআই প্রোটোকল ব্যবহার করে একটি পৃথক ডিমন (বা "দীর্ঘ-চলমান প্রক্রিয়া") এর সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেয়। আপনি আপনার দীর্ঘমেয়াদী জ্যাঙ্গো প্রক্রিয়া শুরু করেন, তারপরে আপনি এই প্রক্রিয়াটির সাথে যোগাযোগের জন্য অ্যাপাচের মোড_ফেষ্টগিটি কনফিগার করেন।
নোট যা mod_wsgi
উভয় মোডে কাজ করতে পারে: এম্বেড করা বা ডিমন।
আপনি যখন মোড_ফেসটগি পড়েন, আপনি দেখতে পাবেন যে জ্যাঙ্গো মোড_ফেসটগির সরবরাহিত তথ্য থেকে ডাব্লুএসজিআই-সামঞ্জস্যপূর্ণ ইন্টারফেস তৈরি করতে ফ্লপ ব্যবহার করে। পাইপলাইনটি এভাবে কাজ করে।
Apache -> mod_fastcgi -> FLUP (via FastCGI protocol) -> Django (via WSGI protocol)
জ্যাঙ্গোর বিভিন্ন ইন্টারফেসের জন্য বেশ কয়েকটি "django.core.handlers" রয়েছে।
মোড_ফেসটগির জন্য, জ্যাঙ্গো এমন একটি সরবরাহ করে manage.py runfcgi
যা এফএলইপ এবং হ্যান্ডলারের সংহত করে।
Mod_wsgi এর জন্য, এর জন্য একটি মূল হ্যান্ডলার রয়েছে।
কীভাবে ডাব্লুএসজিআই সমর্থন ইনস্টল করবেন?
এই নির্দেশাবলী অনুসরণ করুন।
https://code.google.com/archive/p/modwsgi/wikis/IntegrationWithDjango.wiki
পটভূমির জন্য এটি দেখুন
http://docs.djangoproject.com/en/dev/howto/deployment/#howto-deployment-index