অর্ডারিং: 1. এনগিনেক্স 2. বার্নিশ 3. হ্যাপ্রোক্সি 4. ওয়েবসারভার?


50

আমি লোকেদের এই সমস্তগুলিকে একটি প্রবাহের সাথে সংযুক্ত করার পরামর্শ দিয়েছি, তবে তাদের কাছে প্রচুর ওভারল্যাপিং বৈশিষ্ট্য রয়েছে বলে মনে হচ্ছে আপনার প্রকৃত ওয়েব সার্ভারটি আঘাত করার আগে আপনি কেন 3 টি ভিন্ন প্রোগ্রামের মধ্য দিয়ে যেতে চান to

nginx:

  • এসএসএল: হ্যাঁ
  • সংক্ষেপ: হ্যাঁ
  • ক্যাশে: হ্যাঁ
  • ব্যাকএন্ড পুল: হ্যাঁ

বার্নিশ:

  • এসএসএল: না (স্টানেল?)
  • সংকোচ:?
  • ক্যাশে: হ্যাঁ (প্রাথমিক বৈশিষ্ট্য)
  • ব্যাকএন্ড পুল: হ্যাঁ

HAProxy:

  • এসএসএল: না (স্টানাল)
  • সংকোচ:?
  • ক্যাশে: না
  • ব্যাকএন্ড পুল: হ্যাঁ (প্রাথমিক বৈশিষ্ট্য)

আপনার মূল ওয়েব সার্ভারের সামনে এই সমস্তগুলিকে শৃঙ্খলাবদ্ধ করার উদ্দেশ্য কি কেবল তাদের প্রাথমিক বৈশিষ্ট্যগুলির কিছু সুবিধা পেতে পারে?

এটি এতগুলি ডেমন একসাথে একই রকম কাজ করে ফেলা বেশ ভঙ্গুর বলে মনে হচ্ছে।

আপনার স্থাপনা এবং অর্ডারিং পছন্দ কী এবং কেন?



4
আপনি HAProxy বলতে না?
লুইস লোবো বোরোবিয়া

এনগিনেক্সের কাছে সমস্ত কিছু আছে বলে মনে হচ্ছে, তাই আমি কেবল এনজিনেক্স ব্যবহার করব বলে বলছি।
Seun Osewa

উত্তর:


60

সহজভাবে করা..

হাপ্রোক্সি হ'ল বাজারের সেরা ওপেনসোর্স লোডবালেন্সার।
বার্নিশ বাজারের সেরা ওপেনসোর্স স্ট্যাটিক ফাইল ক্যাচার।
এনগিনেক্স বাজারের সেরা ওপেনসোর্স ওয়েবসার্ভার ver

(অবশ্যই এটি আমার এবং আরও অনেক লোকের মতামত)

তবে সাধারণত, সমস্ত অনুসন্ধানগুলি পুরো স্ট্যাকের মধ্য দিয়ে যায় না।

হ্যাপ্রোক্সি এবং এনজিনেক্স / একাধিক এনজিন্সের মাধ্যমে সমস্ত কিছু।
কেবলমাত্র পার্থক্য হ'ল স্থির অনুরোধগুলির জন্য বার্নিশে আপনি "বল্টু"।

  • যে কোনও অনুরোধ অপ্রয়োজনীয় এবং থ্রুপুট জন্য লোডবালেন্সাল হয় (ভাল, এটি স্কেলযোগ্য অপ্রয়োজনীয়)
  • স্ট্যাটিক ফাইলগুলির জন্য কোনও অনুরোধ প্রথমে বার্নিশ ক্যাশে মারছে (ভাল, এটি দ্রুত)
  • কোনও গতিশীল অনুরোধ সরাসরি ব্যাকএন্ডে যায় (দুর্দান্ত, বার্নিশটি ব্যবহার হয় না)

সামগ্রিকভাবে, এই মডেলটি একটি স্কেলযোগ্য এবং ক্রমবর্ধমান আর্কিটেকচারের সাথে খাপ খায় (আপনার যদি একাধিক সার্ভার না থাকে তবে হ্যাপ্রোক্সি বাইরে নিয়ে যান))

আশা করি এটি সহায়তা করে: ডি

দ্রষ্টব্য: আমি আসলে এসএসএল প্রশ্নের জন্যও পাউন্ডটি চালু করব: ডি
এসএসএল অনুরোধগুলি ডিক্রিপ্ট করার জন্য এবং ব্যাকএন্ড স্ট্যাকের স্ট্যান্ডার্ড অনুরোধগুলি পাস করার জন্য উত্সর্গীকৃত একটি সার্ভার থাকতে পারে: ডি (এটি পুরো স্ট্যাকটিকে দ্রুত এবং সহজতর করে তোলে)


1
খুব আকর্ষণীয়, বিশেষত ডিক্রিপশন সার্ভার সম্পর্কে অংশ। +1
গেরি

দুর্দান্ত উত্তর। আমি ভাবছি সব কিসের সামনে বসে আছে? এটি হ্যাপ্রোক্সি নাকি এনগিনেক্স?
জন

2
@ জন: [ক্লায়েন্ট -> HAProxy -> বার্নিশ -> Nginx -> স্থিতিশীল বিষয়বস্তু] বা [ক্লায়েন্ট -> HAProxy -> Nginx (
alচ্ছিক

2
আপনি কেন স্থির ক্যাশে এবং গতিশীল পরিবেশন করবেন? স্ট্যাটিক ফাইলগুলি পরিবেশন করার জন্য এনগিনেক্স দ্রুত বজ্রপাত করছে। গতিশীলের উপর ক্যাশে প্রয়োগ করতে আমি স্থির জন্য [ HAProxy-> Nginx] এবং [ HAProxy-> Nginx-> Varnish-> Apache] এর মতো একটি স্ট্যাক ব্যবহার করতে পছন্দ করি । আপনার উত্সর্গীকৃত টার্মিনেটিং নোডগুলির সাথে উল্লিখিত হিসাবে লোড ব্যালেন্সারে এসএসএলকে সমাপ্ত করা হচ্ছে।
স্টিভ বুজনস

33

ভূমিকা

২০১ in-তে আপডেট Th জিনিসগুলি বিকশিত হচ্ছে, সমস্ত সার্ভারগুলি আরও ভাল হচ্ছে, তারা সকলেই এসএসএলকে সমর্থন করে এবং ওয়েবটি আগের চেয়ে আশ্চর্যজনক।

যতক্ষণ না বলা হয়েছে, নীচেগুলি ব্যবসায় এবং স্টার্ট-আপগুলিতে পেশাদারদের দিকে লক্ষ্য করে লক্ষ লক্ষ লক্ষ ব্যবহারকারীকে সমর্থন করে।

এই সরঞ্জামগুলি এবং আর্কিটেকচারগুলির জন্য প্রচুর ব্যবহারকারী / হার্ডওয়্যার / অর্থের প্রয়োজন। আপনি এটি একটি হোম ল্যাবে বা ব্লগ চালানোর জন্য চেষ্টা করতে পারেন তবে এটি খুব বেশি বোঝা যায় না।

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

কিছু সাধারণ এবং আকর্ষণীয় মোতায়েন

HAProxy (ভারসাম্য) + nginx (পিএইচপি অ্যাপ্লিকেশন + ক্যাশে)

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

HAProxy ---> nginx-php
A       ---> nginx-php
P       ---> nginx-php
r       ---> nginx-php
o       ---> nginx-php
x       ---> nginx-php
y       ---> nginx-php

HAProxy (ভারসাম্য) + বার্নিশ (ক্যাশিং) + টমক্যাট (জাভা অ্যাপ্লিকেশন)

ইউআরআই (* .jpg * .css * .js) এর ভিত্তিতে HAProxy বার্নিশে পুনর্নির্দেশ করতে পারে।

HAProxy ---> tomcat
A       ---> tomcat
        ---> tomcat
P       ---> tomcat <----+
r       ---> tomcat <---+|
o                       ||
x       ---> varnish <--+|
y       ---> varnish <---+

HAProxy (ভারসাম্য) + এনগিনেক্স (হোস্টের কাছে SSL এবং ক্যাশে) + ওয়েবসার্ভ (অ্যাপ্লিকেশন)

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

দ্রষ্টব্য : বন্দর পুনর্নির্দেশ 443: 8080 ঘটছে তবে বৈশিষ্ট্যের অংশ নয়। বন্দর পুনর্নির্দেশ করার কোনও অর্থ নেই। লোড ব্যালেন্সার সরাসরি ওয়েবসার্ভারের সাথে কথা বলতে পারে: 8080।

          (nginx + webserver on same host)
HAProxy ---> nginx:443 -> webserver:8080
A       ---> nginx:443 -> webserver:8080
P       ---> nginx:443 -> webserver:8080
r       ---> nginx:443 -> webserver:8080
o       ---> nginx:443 -> webserver:8080
x       ---> nginx:443 -> webserver:8080
y       ---> nginx:443 -> webserver:8080

মিডলওয়্যার

HAProxy: ভার ভারসাম্যকারী

প্রধান বৈশিষ্ট্য :

  • লোড ব্যালেন্সিং (টিসিপি, এইচটিটিপি, এইচটিটিপিএস)
  • একাধিক অ্যালগরিদম (রাউন্ড রবিন, উত্স আইপি, শিরোনাম)
  • অধিবেশন অধ্যবসায়
  • এসএসএল সমাপ্তি

অনুরূপ বিকল্প : এনগিনেক্স (মাল্টি-পারপাস ওয়েব-সার্ভার লোড ব্যালেন্সার হিসাবে কনফিগারযোগ্য)
বিভিন্ন বিকল্প : ক্লাউড (অ্যামাজন ইএলবি, গুগল লোড ব্যালেন্সার), হার্ডওয়্যার (এফ 5, ফোরটিনেট, সিট্রিক্স নেটস্কেলার), অন্যান্য ও বিশ্বব্যাপী (ডিএনএস, যেকোনকাস্ট, ক্লাউডফ্লেয়ার)

HAProxy কী করে এবং কখন আপনি এটি ব্যবহার করতে চান?
যখনই আপনার প্রয়োজন ভারসাম্য ভারসাম্য। HAProxy সমাধানে যেতে হয়।

আপনি যখন খুব সস্তা বা দ্রুত এবং নোংরা করতে চান বা আপনার কাছে দক্ষতা উপলব্ধ নেই তা বাদে আপনি ELB ব্যবহার করতে পারেন: ডি

ছাড়া যখন আপনি ব্যাংকিং / সরকারি / অনুরূপ কঠিন প্রয়োজনীয়তা সঙ্গে আপনার নিজের datacenter ব্যবহার করতে প্রয়োজন মধ্যে আছেন (ডেডিকেটেড পরিকাঠামো, নির্ভরযোগ্য ফেলওভার, ফায়ারওয়াল এর 2 স্তর নিরীক্ষণ স্টাফ, SLA প্রস্তাব প্রতি ডাউনটাইম মিনিট এক্স% পরিশোধ করতে, এক সব) তাহলে আপনি আপনার 30 টি অ্যাপ্লিকেশন সার্ভার যুক্ত র্যাকের উপরে 2 টি 5 রাখতে পারেন।

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

ব্যক্তিগত মতামত : একটি ছোট, অন্তর্ভুক্ত, মুক্ত উত্স প্রকল্প, সম্পূর্ণরূপে এক সত্য উদ্দেশ্যকে উত্সর্গীকৃত। সবচেয়ে সহজ কনফিগারেশন (ওয়ান ফাইল) এর মধ্যে, আমি আমার জীবনে এসেছি সবচেয়ে দরকারী এবং সবচেয়ে নির্ভরযোগ্য ওপেন সোর্স সফ্টওয়্যার।

এনজিনেক্স: আপাচি যা চুষে না

প্রধান বৈশিষ্ট্য :

  • ওয়েব সার্ভার এইচটিটিপি বা এইচটিটিপিএস
  • সিজিআই / পিএইচপি / কিছু অন্যান্যতে অ্যাপ্লিকেশন চালান
  • ইউআরএল পুনর্নির্দেশ / পুনর্লিখন
  • প্রবেশাধিকার নিয়ন্ত্রণ
  • এইচটিটিপি শিরোনামগুলি ম্যানিপুলেশন
  • ক্যাশিং
  • বিপরীত প্রক্সি

অনুরূপ বিকল্প : অ্যাপাচি, লাইটটিপিডি, টমক্যাট, গ্যানিকর্ন ...

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

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

ছাড়া যখন আপনার আবেদন nginx এবং nginx চালানোর উদ্দেশ্যে না হয় কোথাও না তারপর nginx কম বিন্দু আপনার স্ট্যাক (জাভা দোকান কেউ?) পাওয়া যাবে। ওয়েবসার্ভার বৈশিষ্ট্যগুলি আপনার বর্তমান ওয়েবসার্ভারে উপস্থিত থাকতে পারে এবং অন্যান্য কাজগুলি উপযুক্ত উত্সর্গীকৃত সরঞ্জাম (HAProxy / বার্নিশ / সিডিএন) দ্বারা আরও ভালভাবে পরিচালনা করা হয়।

ছাড়া যখন আপনার ওয়েবসার্ভার / অ্যাপ্লিকেশান বৈশিষ্ট্য উদাসীন, হার্ড কনফিগার এবং / অথবা আপনি বরং কাজ চেয়ে (যে কেউ Gunicorn?) এটি তাকান মরা সেই ভাষাতে, তাহলে আপনি সামনে একটি nginx করা হতে পারে (যেমন প্রতিটি নোডের স্থানীয়ভাবে) URL টি সম্পাদন করতে পুনরায় লেখা, 301 পুনর্নির্দেশগুলি প্রেরণ করুন, অ্যাক্সেস নিয়ন্ত্রণ প্রয়োগ করুন, এসএসএল এনক্রিপশন সরবরাহ করুন, এবং ফ্লাইটে এইচটিটিপি শিরোনাম সম্পাদনা করুন। [ওয়েব সার্ভারের কাছ থেকে প্রত্যাশিত বৈশিষ্ট্যগুলি]

বার্নিশ: ক্যাশিং সার্ভার

প্রধান বৈশিষ্ট্য :

  • ক্যাশিং
  • অ্যাডভান্সড ক্যাচিং
  • ফাইন দানযুক্ত ক্যাচিং
  • ক্যাশিং

অনুরূপ বিকল্প : এনগিনেক্স (বহু-উদ্দেশ্যমূলক ওয়েব-সার্ভার ক্যাশে সার্ভার হিসাবে কনফিগারযোগ্য)
বিভিন্ন বিকল্প : সিডিএন (আকামাই, আমাজন ক্লাউডফ্রন্ট, ক্লাউডফ্লেয়ার), হার্ডওয়্যার (এফ 5, ফোর্টিনেট, সিট্রিক্স নেটস্কেলার)

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

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

ছাড়া যখন আপনি (যা CDN একটি বিকল্প হয় না) আপনার নিজের datacenter আপনার নিজের হার্ডওয়্যার ব্যবহার করতে বাধ্য করছি এবং আপনার সার্ভারগুলির স্ট্যাটিক ফাইল (আরো সার্ভারগুলির যোগ সাহায্য নয়) প্রদান এ ভয়ানক তারপর বার্নিশ শেষ অবলম্বন করা হয়।

ছাড়া যখন আপনি বেশিরভাগই স্ট্যাটিক এখনো-জটিল-পরিবর্তনশীল-জেনারেট-সামগ্রী সহ একটি সাইট আছে (দেখুন নিম্নলিখিত অনুচ্ছেদের) তাহলে বার্নিশ আপনার সার্ভারগুলির উপর প্রক্রিয়াকরণের ক্ষমতা অনেক সঞ্চয় করতে পারেন।

স্ট্যাটিক ক্যাচিং 2016 সালে ওভাররেটেড

ক্যাচিং প্রায় কনফিগারেশন মুক্ত, অর্থ মুক্ত এবং সময়মুক্ত। কেবল ক্লাউডফ্লেয়ার, বা ক্লাউডফ্রন্ট বা আকামাই বা ম্যাকসিডিএন-তে সাবস্ক্রাইব করুন। এই লাইনটি লিখতে আমার যে সময় লাগে তার থেকে বেশি সময় লেগে যায় এবং সেট আপটি ক্যাশিং সেটআপ করতে সময় নেয় এবং আমার হাতে যে বিয়ারটি ধরে থাকে তা মাঝারি ক্লাউডফ্লেয়ার সাবস্ক্রিপশনের চেয়ে ব্যয়বহুল।

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

পারফরম্যান্স বিবেচনা

বার্নিশ এমন সময়ে তৈরি করা হয়েছিল যখন গড় ওয়েব সার্ভারগুলি একটি ব্লগে বিড়ালের ছবি পরিবেশন করতে দম বন্ধ করছিল। আজকাল গড় আধুনিক মাল্টি-থ্রেডড অ্যাসিনক্রোনাস বুজওয়ার্ড-চালিত ওয়েবসার্ভারের একক উদাহরণটি নির্ভরযোগ্যভাবে একটি বিড়ালছানা একটি পুরো দেশে সরবরাহ করতে পারে। সৌজন্যে sendfile()

আমি যে শেষ প্রকল্পটিতে কাজ করেছি তার জন্য কিছু দ্রুত পারফরম্যান্স পরীক্ষা করেছি। একটি একক টমক্যাট উদাহরণটি এইচটিটিপিতে প্রতি সেকেন্ডে 21 000 থেকে 33 000 স্ট্যাটিক ফাইল পরিবেশন করতে পারে (20 বি থেকে 12 কেবি পর্যন্ত ফাইলগুলি পৃথক এইচটিটিপি / ক্লায়েন্ট সংযোগ গণনা সহ পরীক্ষা করে)। স্থায়ী আউটবাউন্ড ট্র্যাফিক ২.৪ জিবি / সেকেন্ডের বাইরে। উত্পাদনে কেবল 1 জিবি / গুলি ইন্টারফেস থাকবে। হার্ডওয়ারের চেয়ে ভাল আর করা যায় না, এমনকি বার্নিশ চেষ্টা করেও লাভ নেই।

গতিশীল কন্টেন্ট পরিবর্তন করে ক্যাচিং

যা CDN এবং ক্যাশে সার্ভার সাধারণত পরামিতি সঙ্গে URL টি এড়ান ?article=1843, তারা সেশন কুকিজ বা প্রমাণীকৃত ব্যবহারকারীদের সাথে কোন অনুরোধ উপেক্ষা করা, এবং তারা সহ সবচেয়ে MIME প্রকারসমূহ উপেক্ষা application/jsonথেকে /api/article/1843/info। কনফিগারেশন বিকল্পগুলি উপলব্ধ রয়েছে তবে সাধারণত "সমস্ত বা কিছুই নয়" জরিমানা দানাযুক্ত নয় ined

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

উপসংহার

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

এটি বেশ দীর্ঘ হতে পারে (6 ঘন্টা লিখতে O ওএমজি!: ও)। সম্ভবত আমার এটি সম্পর্কে একটি ব্লগ বা একটি বই শুরু করা উচিত। মজাদার ঘটনা: উত্তরের দৈর্ঘ্যের কোনও সীমা আছে বলে মনে হয় না।


5
উত্তরের দৈর্ঘ্যের একটি সীমা রয়েছে, তবে এটি পৌঁছাতে আপনাকে আরও কয়েকটি বই লিখতে হবে।
মাইকেল হ্যাম্পটন

2
ক্যাশে সম্পর্কিত একটি বিষয় উল্লেখযোগ্য: এটি যখন আপনার অ্যাপ্লিকেশনটির নিয়ন্ত্রণ না থাকে তখন কোনও সাইটের কার্যকারিতা উন্নত করার একটি শক্তিশালী উপায়; বিশেষত যদি অ্যাপ্লিকেশনটির কাছে সত্যিই বোকা ক্যাশে শিরোলেখ থাকে (এন্টারপ্রাইজ অ্যাপ্লিকেশন কারও?) অথচ প্রমাণিত সংস্থান সম্পর্কে আপনাকে আরও অনেক সচেতন হতে হবে।
ক্যামেরন কের

@ user5994461 আমি আপনার ব্লগটি পড়তে চাই। আশ্চর্য উত্তর!
oxalorg

20

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

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

কখনও কখনও আপনাকে ভারী ডিডোএস আক্রমণ থেকে রক্ষা করতে হবে এবং সামনের হ্যাপ্রোক্সি অন্যগুলির চেয়ে বেশি উপযুক্ত হবে।

সাধারণভাবে, আপনার পছন্দগুলির মধ্যে কী কী আপস করবেন তা নিয়ে আপনার চিন্তা করা উচিত নয়। আপনার প্রয়োজন এবং এখন আপনার প্রয়োজনের জন্য সর্বোত্তম নমনীয়তা পেতে কীভাবে তাদের একত্রিত করবেন তা আপনার চয়ন করা উচিত। এমনকি যদি আপনি তাদের বেশ কয়েকটি বার স্ট্যাক করেন তবে এটি কখনও কখনও আপনার প্রয়োজনের উপর নির্ভর করে সঠিক হতে পারে।

আশা করি এই সাহায্য!


1
HAProxy- এর জন্য +1 - লেখক সার্ভার ফল্টের প্রশ্নের জবাব দেয়। ধন্যবাদ।
জোয়েল কে

আরেনস্টার: আপনি কি এই সরঞ্জামগুলির মধ্যে একটি লিখেছেন? উইলি তারেরু হ্যাপ্রোক্সির নীতিগত বিকাশকারী।
জোয়েল কে

এই উইলির জন্য ধন্যবাদ আপনি আমার প্রশ্নের উত্তর উপরে দিয়েছিলেন।
জন

2
নোট করুন যে HAProxy এর বর্তমান বিকাশ কোডটিতে এখন এসএসএল অন্তর্ভুক্ত রয়েছে।
জোয়েল কে

14

অন্যান্য সমস্ত উত্তর ২০১০-এর পূর্ববর্তী, সুতরাং একটি আপডেট তুলনা যুক্ত করা হয়েছে।

nginx

  • একটি সম্পূর্ণ ওয়েব সার্ভার, অন্যান্য বৈশিষ্ট্যগুলিও ব্যবহার করা যেতে পারে। যেমন: এইচটিটিপি সংক্ষেপণ
  • এসএসএল সমর্থন
  • Nginx প্রথম থেকেই হালকা হওয়ার জন্য ডিজাইন করা হয়েছিল বলে খুব হালকা ওজন।
  • বার্নিশ ক্যাশে পারফরম্যান্সের কাছাকাছি
  • HAProxy লোড ব্যালেন্সিং কর্মক্ষমতা বন্ধ করুন Close

বার্নিশ

  • জটিল ক্যাচিং দৃশ্যের জন্য এবং অ্যাপ্লিকেশনগুলির সাথে সংমিশ্রনের জন্য সেরা।
  • সেরা স্ট্যাটিক ফাইল ক্যাচার
  • কোনও এসএসএল সমর্থন নেই
  • মেমরি এবং সিপিইউ ভোক্তা

HAProxy

  • ধার্য লোড ভারসাম্য বৈশিষ্ট্যগুলি কাটার জন্য সেরা লোডবালেন্সার, হার্ডওয়্যার লোডবালেন্সারের সাথে তুলনীয়
  • এসএসএল 1.5.0.0 থেকে সমর্থিত
  • সরল, কোনও HTTP বাস্তবায়ন ছাড়াই কেবল একটি tcp প্রক্সি হওয়া, এটি এটি দ্রুত এবং কম বাগ প্রবণ করে তোলে।

সুতরাং সেরা পদ্ধতিটি তাদের যথাযথ ক্রমে প্রয়োগ করছে be

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


6

ভার্নিশ ভারসাম্য রক্ষার জন্য সমর্থন রয়েছে: http://www.varnish-cache.org/trac/wiki/LoadBalancing

লোড ব্যালেন্সিংয়ের জন্য এনগিনেক্সের সমর্থন রয়েছে: http://wiki.nginx.org/NginxHttpUpstreamModule

আমি কেবল এটি বার্নিশ + টানেল দিয়ে কনফিগার করব। আমার যদি অন্য কোনও কারণে nginx দরকার হয় তবে আমি কেবল nginx + বার্নিশ ব্যবহার করব। আপনি এনজিন্সকে এসএসএল সংযোগগুলি গ্রহণ করতে এবং বার্নিশে তাদের প্রক্সি করতে পারেন, তারপরে http দ্বারা বার্নিশের সাথে এনজিন্সের সাথে কথা বলা যেতে পারে।

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


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

এটি যুক্তিসঙ্গত মনে হচ্ছে, যেহেতু এটি লোড ব্যালেন্সিংয়ের সরঞ্জাম হিসাবে উদ্দেশ্যমূলকভাবে নির্মিত। অন্যদিকে, বার্নিশের লোড ব্যালেন্সিং বৈশিষ্ট্যগুলি বেশ ভাল, এবং এই মিশ্রণটি থেকে একটি প্রক্রিয়া সরিয়ে ফেলা আপনার কম বিলম্বের সাথে একটি সহজ কনফিগারেশন পেয়ে যায়।
larsks
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.