ডাব্লুএসজিআই বনাম ইউডাব্লুএসজিআই সাথে এনগিনেক্স [বন্ধ]


90

যে কেউ যখন ব্যবহার অনুকূল / কনস দয়া করে ব্যাখ্যা করুন গেল WSGI বনাম uWSGI nginx সঙ্গে।

বর্তমানে আমি জ্যাঙ্গো ওয়েবসাইটের জন্য একটি প্রোডাকশন সার্ভার তৈরি করছি যা আমি প্রস্তুত করেছি তবে আমার ডাব্লুএসজিআই বা ইউডাব্লুএসজিআইয়ের সাথে যেতে হবে কিনা তা সিদ্ধান্ত নিতে অক্ষম। আপনি কি দয়া করে প্রতিটি কনফিগারেশনকে কী আলাদা করতে পারেন তা বিস্তারিতভাবে বলতে পারেন? কোন কনফিগারেশন সেরা স্কেল করা উচিত?

আগাম ধন্যবাদ


এই ব্লগ পোস্টটি পাইথন ডাব্লুএসজিআই সার্ভারগুলির প্রচুর সাথে একটি সংক্ষিপ্তসার এবং শেষে কিছু প্রস্তাবনার সাথে একটি খুব বিশদ তুলনা।
লো থিডারম্যান

এবং কিছু সার্ভারের জন্য কনফিগারেশনগুলিও ব্যবহার করে যা সত্যই ডুজি এবং সেগুলি তাদের থেকে আরও খারাপ দেখা দেয়। সেই তুলনাতে যে কী পড়বে সে সম্পর্কে সতর্ক থাকতে হবে।
গ্রাহাম ডাম্পলেটন

25
ডাব্লুএসজিআই একটি স্পেসিফিকেশন। uWSGI ডাব্লুএসজিআই নির্দিষ্টকরণের একটি বাস্তবায়ন সরবরাহ করে। আপনি তাদের তুলনা করতে পারবেন না। আপনি কেবল বিভিন্ন বাস্তবায়ন তুলনা করতে পারেন।
গ্রাহাম ডাম্পলটন

উত্তর:


101

ঠিক আছে, ছেলেরা এই বিভ্রান্তি হ'ল বেশ কয়েকটি উত্স থেকে বিশদের অভাব এবং এই প্রোটোকলের নামকরণ এবং ডাব্লুএসজিআই আসলে কী।

সারসংক্ষেপ:

  1. ডাব্লুএসজিআই এবং উউসগি উভয়ই সার্ভার নয়, প্রোটোকল। লোড ব্যালেন্সিংয়ের জন্য ওয়েব সার্ভারের সাথে যোগাযোগ করার জন্য এবং বিশেষত খাঁটি HTTP সরবরাহ করতে পারে না এমন অতিরিক্ত বৈশিষ্ট্যগুলির সুবিধা নিতে এটি ব্যবহার করা হয়। এখন পর্যন্ত নিগিনেক্স এবং চেরোকি এই প্রোটোকলটি কার্যকর করেছে।
  2. uWSGI একটি সার্ভার এবং এটি প্রয়োগ করা একটি প্রোটোকল হ'ল ডাব্লুএসজিআই (ইউউএসজিআই প্রোটোকলটিকে ইউডাব্লুএসজিআই সার্ভারের সাথে বিভ্রান্ত করবেন না)। ডাব্লুএসজিআই একটি পাইথন স্পেসিফিকেশন । ডাব্লুএসজিআই স্পেসিফিকেশনের বেশ কয়েকটি বাস্তবায়ন রয়েছে এবং এটি কেবলমাত্র অ্যাপ্লিকেশন সার্ভার / ওয়েব সার্ভারের চেয়ে বেশি ব্যবহারের উদ্দেশ্যে করা হয়েছে, তবে বেশ কয়েকটি ডাব্লুএসজিআই অ্যাপ্লিকেশন সার্ভার রয়েছে (যেমন, চেরিপাই, যা উত্পাদন প্রস্তুত ডাব্লুএসজিআই অনুবর্তী ওয়েব সার্ভারের ক্ষেত্রেও ঘটে) , যদি আপনি ইতিমধ্যে যথেষ্ট বিভ্রান্ত না হন!)।
  3. উউসগিকে ডাব্লুএসজিআইয়ের সাথে তুলনা করা কমলকে আপেলের সাথে তুলনা করছে।

4
টাইপো: "১. উউসগি একটি প্রোটোকল যা সার্ভার নয়" " -> "১. ডাব্লুএসজিআই হ'ল একটি প্রোটোকল যা সার্ভার নয়" "
আমান

9
আসলে, আমি 1 এর জন্য যা লিখেছি তা সঠিক, তবে এটি সত্য ডাব্লুএসজিআই হ'ল একটি প্রোটোকল পাশাপাশি উউসগি, সুতরাং আপনার লেখা দুটি বক্তব্যই সঠিক। অবশ্যই, 1 এর বাকি প্রসঙ্গটি ছাড়াই এটি uWSGI সার্ভার দ্বারা ব্যবহৃত প্রোটোকল। wiki.nginx.org/HttpUwsgiModule , - "uWSGI সার্ভারের সাথে uwsgi প্রোটোকলকে বিভ্রান্ত করবেন না (যে uwsgi প্রোটোকল বলে)"
ডেরেক লিটজ

4
আহ ঠিক আছে. আমি ভেবেছিলাম আপনি 1 স্টেটমেন্টের মধ্যে একটি বৈসাদৃশ্য আঁকতে চেষ্টা করছেন। "ডাব্লুএসজি একটি প্রোটোকল .." এবং ২। "উউসগি একটি সার্ভার যা প্রোটোকল প্রয়োগ করে"।
আমান

4
@ ডেরিকলিটজ, জঞ্জো যখন কোন সার্ভারে চলে তখন আমরা কাজ করি python manage.py runserver?
পিয়ুশ এস ওয়ানারে

python manage.py runserverজ্যাঙ্গোতে অন্তর্নির্মিত একটি অভ্যন্তরীণ সার্ভার। এটি অ্যাপাচি, এনগিনেক্স, গ্যানিকর্ন বা অন্য কিছু নয়। ওয়ার্কজেগ ফ্রেমওয়ার্ক ব্যবহার করে django-extensionsএমন একটি সরবরাহ করে runserver_plus, তবে এটি সার্ভারের কাছাকাছি যতই runserverপায়।
মাইক ডিসিমোন

32

আপনার মূল ওয়েব সার্ভার থেকে পৃথক প্রক্রিয়াতে পাইথন চালানো ভাল। এইভাবে, ওয়েব সার্ভারে প্রচুর পরিমাণে ছোট ছোট থ্রেড থাকতে পারে যা স্থির সামগ্রীতে সত্যিই দ্রুত পরিবেশন করে, যখন আপনার পৃথক পাইথন প্রক্রিয়াগুলি বড় এবং হেভিওয়েট হবে এবং প্রত্যেকটি তাদের নিজস্ব পাইথন ইন্টারপ্রেটার চালাচ্ছে। WSGIএটি সাধারণভাবে খারাপ, কারণ এটি আপনার প্রতিটি এনগিনেক্স থ্রেডকে একটি বড় পাইথন ইন্টারপ্রেটার দিয়ে ফুলে যায়। ব্যবহার flupবা gunicornবা uWSGIপিছনে nginxকারণ যে মুক্ত nginx পর্যন্ত কেবল বিষয়বস্তু পরিবেশন করা, অনেক ভালো, এবং আপনি কত ক্ষুদ্র আলো nginx থ্রেড চালানোর জন্য চয়ন কত হেভিওয়েট পাইথন থ্রেড আপনি ডায়নামিক সামগ্রী সেবা করার জন্য আসা আপনার পছন্দ স্বাধীনভাবে করতে দেয়। লোকেরা gunicornএই মুহুর্তে খুব খুশি মনে হচ্ছে , তবে এই তিনটি বিকল্পের যে কোনওটিরই কাজ করা উচিত।

এগিয়ে যাওয়ার সাথে সাথে বোঝা গুরুতর হতে শুরু করলে পাইথনকে অন্য সার্ভারে স্থানান্তরিত করতে আপনাকে মুক্তি দেয়।


4
আপনার উত্তর শুনে কিছুটা বিভ্রান্ত হয়ে পড়েছি। আমি দেখতে পাচ্ছি না যে তিনি এনজিএনএক্সের ভিতরে কোনও ধরণের ডাব্লুএসজিআই বাস্তবায়ন চালিয়ে যাওয়ার কথা উল্লেখ করেছিলেন। তিনি মূল wsgi.org সাইটটি উল্লেখ করেছেন .org ডাব্লুএসজিআই এবং ইউডাব্লুএসজিআইয়ের মধ্যে তাঁর মূল তুলনাটি প্রথমে কিছুটা নির্বোধ কারণ ইউডাব্লুএসজিআই হ'ল ডাব্লুএসজিআই নির্দিষ্টকরণের বাস্তবায়ন of আপনি নিজে জেনেরিক ডাব্লুএসজিআই শব্দটি একটি বিভ্রান্তিমূলকভাবে ব্যবহার করে বলেছেন যে 'এটি আপনার প্রতিটি এনগিনেক্স থ্রেডকে একটি বড় পাইথন ইন্টারপ্রেটার দিয়ে ফুলে যায়'। ডাব্লুএসজিআই স্পেসিফিকেশন নিজেই এটি করতে পারে না, কেবল বাস্তবায়ন করতে পারে।
গ্রাহাম ডাম্পলটন

4
এটি যদি আমরা এনগিনেক্স + মোড_উইজি (প্লাগেবল মডিউল) এবং এনগিনেক্স + ইউডাব্লুএসজিআই (অ্যাপ্লিকেশন সার্ভারের ধারক) সাথে তুলনা করি তবে তা বোঝা যায়।
ক্লাইমে

তাই যখন পাইগন ওয়েব অ্যাপ্লিকেশনগুলি চালানোর জন্য এনগিনেক্স ব্যবহার করার কথা আসে, যেহেতু ম্যানলিও পেরিলোর মোড_উজি ডেডওয়্যার এবং সুপারিশ করা হয় না, তবে ভাল সমাধানগুলি ডাব্লুএসজিআই হয় বন্দুকবাজ বা ইউডাব্লুএসজিআই, অথবা ফ্লোআপের সাথে ফাস্টসিজিআই?
গুলবাহার

19

আমি এই মুহুর্তে এখানে বিশ্বাস করি http://flask.pocoo.org/docs/deploying/uwsgi/ বিভ্রান্তি দূর করার জন্য একটি উত্তম উত্তর। প্রশ্নটি নিরীহ নয়, যে কেউ এই দুটি শব্দটি দেখেন এবং মোড_এইচপি বিশ্বের বাইরে জিনিসগুলি কীভাবে কাজ করে তার কোনও পূর্ব তথ্য নেই (যেমন পিএইচপি বা লোকজনের বিরুদ্ধে কিছুই নয়)

সাইটটি ব্যবহারিক দিক থেকে ব্যাখ্যা করা ভাল যা কি প্রয়োজন এবং পার্থক্য কী পাশাপাশি এনজিএনএক্সের জন্য একটি ভাল স্থাপনার উদাহরণ।


সুবিধার্থে, ফ্লাস্ক উইকির ব্যাখ্যা এখানে উদ্ধৃত করা হয়েছে:

uWSGI হ'ল এনগিনেক্স, লাইটটিপিডি এবং চেরোকির মতো সার্ভারগুলিতে একটি স্থাপনার বিকল্প; অন্যান্য বিকল্পের জন্য ফাস্টসিজিআই এবং স্বতন্ত্র ডাব্লুএসজিআই কনটেইনারগুলি দেখুন। আপনার ডাব্লুএসজিআই অ্যাপ্লিকেশনটি ইউডাব্লুএসজিআই প্রোটোকলের সাথে ব্যবহার করতে আপনার প্রথমে একটি ইউডাব্লুএসজিআই সার্ভারের প্রয়োজন হবে। uWSGI হ'ল একটি প্রোটোকল এবং একটি অ্যাপ্লিকেশন সার্ভার; অ্যাপ্লিকেশন সার্ভার uWSGI, FastCGI এবং HTTP প্রোটোকল পরিবেশন করতে পারে।

সর্বাধিক জনপ্রিয় uWSGI সার্ভার হ'ল uwsgi, যা আমরা এই গাইডের জন্য ব্যবহার করব। এটি অনুসরণ করার জন্য এটি ইনস্টল করা আছে তা নিশ্চিত করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.