আমার যখন ইউডব্লিউএসজিআই থাকে তখন আমার কেন এনজিঙ্ক্স দরকার


62

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

তবে এই কিটে আমার কেন এনগিনেক্স দরকার? uWSGI নিজে ডাব্লুএসজিআই পাইথন অ্যাপ্লিকেশন পরিবেশন করতে পারে, এটি স্ট্যাটিক ফাইলগুলি পরিবেশন করতে পারে, এটি এসএসএলও করতে পারে। ইউএনডব্লিউএসজিআই যা করতে পারে না এনগিনেক্স কী করতে পারে?


9
আমি দেখতে পাচ্ছি যে এই প্রশ্নটি মতামতের ভিত্তিতে বন্ধ রয়েছে। আমি একেবারেই একমত। প্রশ্ন "ইউএনডাব্লুএসজিআই যা করতে পারে না এনগিনেক্স কী করতে পারে?" সত্য ভিত্তিক।
ব্যবহারকারী 983447

1
আমি সাধারণত পুনরায় খোলার পক্ষে কথা বলি না, তবে এই ক্ষেত্রে আমি সম্মত। বিদ্যমান upvated- এবং- স্বীকৃত উত্তর একটি ভাল উত্তর, যা দেখায় যে প্রশ্নটি বুদ্ধিমান এবং প্রাসঙ্গিক উত্তর স্বীকার করে; আমি মনে করি এটি সম্ভবত এটি একটি ভাল প্রশ্ন করে তোলে।
ম্যাডহ্যাটার

উত্তর:


55

আপনি না।

এটি সহজ উত্তর, যাইহোক - আপনার এটির দরকার নেই । uWSGI নিজেই একটি সক্ষম সার্ভার।

তবে, এনগিনেক্সের মতো অন্যান্য সার্ভারগুলি প্রায় দীর্ঘতর ছিল এবং (সম্ভবত, যাইহোক) আরও সুরক্ষিত রয়েছে, পাশাপাশি অতিরিক্ত বৈশিষ্ট্যগুলি যেমন ইউডাব্লুএসজিআই দ্বারা সমর্থনযোগ্য নয় - উদাহরণস্বরূপ, স্ট্যাটিক সংস্থানসমূহের উন্নত হ্যান্ডলিং (মেয়াদ উত্তীর্ণ বা ই-ট্যাগের কোনও সংমিশ্রনের মাধ্যমে) শিরোনাম, গিজিপ সংক্ষেপণ, প্রাক-সংকুচিত জিজিপ ইত্যাদি) যা সার্ভার এবং নেটওয়ার্কের লোডকে উল্লেখযোগ্যভাবে হ্রাস করতে পারে; এছাড়াও, আপনার জাঙ্গো অ্যাপ্লিকেশনের সামনে এনগিনেক্সের মতো সার্ভার আপনার গতিশীল সামগ্রীর ক্যাচিং বাস্তবায়ন করতে পারে, সার্ভারের লোড হ্রাস করতে আরও সহায়তা করে, এমনকি সিডিএন ব্যবহার সহজতর করতে সহায়তা করে (যা সাধারণত গতিশীল সামগ্রীর সাথে ভাল করে না )। আপনি এমনকি আরও যেতে পারেন এবং সম্পূর্ণ আলাদা সার্ভারে এনজিনেক্স রাখতে পারেন, স্থির সামগ্রীটি নিজেই পরিচালনা করার সময় গতিশীল সামগ্রীর জন্য অ্যাপ্লিকেশন সার্ভারের ভারসাম্য ভারসাম্য ক্লাস্টারে অনুরোধ বিপরীত করতে পারেন।

উদাহরণস্বরূপ, আমার ব্লগটি (যদিও এটি ওয়ার্ডপ্রেস, এটির সামনে এনজিন্স রয়েছে) ২৪ ঘন্টা পোস্টে ক্যাশে, এবং পাঁচ মিনিটের জন্য সূচক পৃষ্ঠাগুলি ক্যাশে করা হয়; যদিও আমি বেশিরভাগ সময় এটির জন্য যথেষ্ট পরিমাণ ট্র্যাফিক দেখি না, তবে এটি আমার ক্ষুদ্র সামান্য ভিপিএসকে আবহাওয়ার মাঝে মাঝে বৃদ্ধি পেতে সহায়তা করে যা অন্যথায় এটিকে ছুঁড়ে মারতে পারে - যেমন আমার কোনও নিবন্ধ বাছাইয়ের পরে ট্র্যাফিকের বড় বৃদ্ধি as হাজার হাজার অনুগামী নিয়ে একটি টুইটারের দ্বারা তৈরি করা হয়েছে, যার মধ্যে অনেকেই এটি তাদের হাজারো অনুগামীদের কাছে পুনরায় টুইট করেছেন।

যদি আমি "বেয়ার" ইউডাব্লুএসজিআই সার্ভার চালিয়ে যাচ্ছিলাম (এবং ধরে নিলাম এটি ওয়ার্ডপ্রেস না হয়ে জ্যাঙ্গো সাইট ছিল) তবে এটি সম্ভবত ঠিক দাঁড়িয়ে ছিল - অথবা এটি ক্র্যাশ ও দাহ হয়ে গেছে, আমাকে মিস করা দর্শকদের জন্য ব্যয় করতে হবে ing । এই বোঝাটি পরিচালনা করতে সামনে Nginx থাকা সত্যিই সহায়তা করতে পারে।

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


3
একটি জিনিস যা মনে আসে যা আমি মনে করি @ ক্রোমী তাদের উত্তরে যে বিষয়টি অন্তর্ভুক্ত করেছে তা ছাড়াও ইউডাব্লুএসজিআইয়ের নেটিভ প্রোটোকলটি এইচটিপি নয় তবে উউসগি প্রোটোকল। উউগজি প্রোটোকলটি HT এর চেয়ে বেশি কার্যকর এবং আরও কার্যকর এবং আপনার ইউডাব্লুএসজিআই অ্যাপ্লিকেশনটির সামনে আরও একটি পূর্ণ বৈশিষ্ট্যযুক্ত ওয়েব সার্ভার (এনজিনেক্স বা হোয়াট নোট) স্টিক করা আসলে প্রচুর প্রসেসিংয়ের সদৃশ হয় না এবং আপনার উপর নির্ভর করে উল্লেখযোগ্য সুবিধা সরবরাহ করতে পারে চাহিদা.
হাকান লিন্ডকভিস্ট

@ হাকানলিন্ডকভিস্ট একেবারে সঠিক; কেবল স্পষ্ট করে বলতে গেলে, ইউডাব্লুএসজিআই এইচটিটিপি "কথা বলার" জন্য পুরোপুরি সক্ষম, তবে এটি নিজের পক্ষে ঠিকঠাক দাঁড়াতে পারে, তবে হ্যাঁ, এটি একটি লক্ষণীয় বিষয় যে এর সামনে একটি ওয়েব সার্ভার ইউটিজি প্রোটোকল ব্যবহার করবে, HTTP নয়, uWSGI এর সাথে কথা বলুন এবং তাই হ্যাঁ, জড়িত প্রসেসিংয়ের খুব কম সদৃশ uplic
ক্রোমি

এটি একটি উত্তম উত্তর, তবে, বিষয়টিতে ইউডাব্লুএসজিআইয়ের নিজস্ব ডকুমেন্টেশনের লিঙ্কের সাথে এটি উন্নত করা যেতে পারে, যা ইউডাব্লুএসজিআই দিয়ে আপনি কী করতে পারবেন তা আরও স্পষ্ট করে ব্যাখ্যা করে: uwsgi-docs.readthedocs.io/en/latest/…
টোবিয়াস ম্যাকনল্টি

1

আইএমও, আপনি যদি ল্যাবের পরিবর্তে আপনার ওয়েবসাইটটি ইন্টারনেটে রাখেন তবে আপনি পার্থক্যটি দেখতে পাবেন।

আপনার ওয়েবসাইট অ্যাক্সেস করতে কম নেটওয়ার্ক গতির ওপেন ওয়েব ব্রাউজার সহ অন্য কোনও দেশের একজন ব্যবহারকারী কল্পনা করুন। uWSGI একটি থ্রেডে এইচটিটিপি সংযোগটি পরিচালনা করবে। এই থ্রেডটি কম নেটওয়ার্কের গতির কারণে সম্পূর্ণ এইচটিটিপি অনুরোধের জন্য অপেক্ষা করতে বেশ দীর্ঘ সময় ব্যয় করতে পারে। যদি আপনার থ্রেড পুলের আকার 100 হয়, তবে 100 জন ব্যবহারকারী ধীর গতির মতো তা কল্পনা করুন, কী হবে? অন্যান্য এইচটিপিপি অনুরোধ পরিচালনা করতে নিষ্ক্রিয় থ্রেড নেই।

তবে এনগিনেক্সের জন্য বিষয়গুলি বেশ আলাদা। এনগিনেক্সকে 'রিঅ্যাক্টর প্যাটার্ন'-এ নকশা করা হয়েছে। এটি কীভাবে কাজ করে তা দেখতে আপনি 'রিঅ্যাক্টর প্যাটার্ন' গুগল করতে পারেন। সংক্ষেপে, ধীর গতির সংযোগ এটি অন্য এইচটিপি অনুরোধগুলি পরিচালনা করতে প্রভাবিত করে না।


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

1
আমি যা জানি, ডিফল্টরূপে, Nginx সম্পূর্ণ HTTP অনুরোধ না পাওয়া পর্যন্ত ব্যাকএন্ড অ্যাপ্লিকেশন সার্ভারের HTTP অনুরোধের প্রক্সি করবে না not সুতরাং জ্যাঙ্গোর মতো অ্যাপ্লিকেশন সার্ভারের জন্য, তারা যা পেয়েছিল তা সবসময় একটি দ্রুত এইচটিটিপি কননিশন এবং অনুরোধ, সম্পূর্ণ http অনুরোধের জন্য অপেক্ষা করার কোনও সময় নষ্ট হয় না, শীঘ্রই অনুসন্ধান পরিচালনা করার পরে, চলমান থ্রেডটি শীঘ্রই পরবর্তী এইচটিপিপি অনুরোধের জন্য নিষ্ক্রিয় হতে পারে।
জ্যাকার্স

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