nginx به دلیل عملکرد و مقیاس پذیری بالا محبوب است. این سرور وب شماره 1 منبع باز است. در این آموزش ، ما یاد خواهیم گرفت که از Nginx به عنوان یک متعادل کننده بار استفاده کنیم.

نحوه استفاده از nginx به عنوان متعادل کننده بار

وب سایت های مدرن ترافیک بالا صدها هزار نفر را ارائه می دهند ، و در بعضی موارد میلیون ها درخواست همزمان از کاربران یا مشتری ها و متن ، تصاویر ، فیلم یا داده های صحیح را به صورت سریع و قابل اعتماد برگردانید. برای پاسخگویی به نیازهای این حجم های بالا و محاسبات قدرت به سرورهای بیشتری نیاز دارید. با سرورهای بیشتر ، به راهی برای بارگذاری تعادل ترافیک بین این سرورها نیاز دارید. در این آموزش وبلاگ ، ما بررسی خواهیم کرد که یک متعادل کننده بار چیست و چگونه می توانیم از NGINX به عنوان یک متعادل کننده بار استفاده کنیم. برای پیکربندی تعادل بار NGINX به عنوان یک پیش نیاز ، شما باید حداقل دو میزبان با یک نرم افزار سرور وب نصب و پیکربندی کنید تا مزایای توازن بار با NGINX را ببینید. اگر در حال حاضر یک میزبان وب در حال اجرا تنظیم کرده اید ، با ایجاد یک تصویر سفارشی آن را کپی کرده و آن را بر روی یک سرور وب جدید مستقر کنید. بنابراین ، بیایید یاد بگیریم که چگونه تنظیمات تعادل بار NGINX را برای سرورهای ابری خود تنظیم کنیم.! سرور وب Nginx

سرور وب Nginx

Nginx یک سرور وب با کارایی بالا و باز است. علاوه بر قابلیت های سرور HTTP ، NGINX همچنین می تواند به عنوان یک سرور پروکسی برای ایمیل (IMAP ، POP3 و SMTP) و یک پروکسی معکوس و بارگذاری تعادل nginx برای سرورهای HTTP ، TCP و UDP عمل کند. این عملکرد ، قابلیت اطمینان و امنیت برنامه های شما را بهبود می بخشد. این مجموعه از ویژگی های غنی آن ، پیکربندی ساده و مصرف کم منابع محبوب است. nginx چگونه کار می کند؟ NGINX معمولاً به عنوان یک متعادل کننده بار پروکسی معکوس NGINX به عنوان یک نقطه ورود به یک برنامه وب توزیع شده که روی چندین سرور جداگانه کار می کند ، استفاده می شود. این روش از یک رویکرد ناهمزمان و رویداد محور برای ارائه استفاده از حافظه کم و همزمانی بالا استفاده می کند. می توانید اطلاعات بیشتر در مورد Nginx اینجا را بخوانید.

متعادل کننده بار

تعادل بار فرایند توزیع ترافیک شبکه در چندین سرور است. و “نرم افزار” یا “سخت افزار” که این فرآیند توزیع را انجام می دهد ، Balancer Load نامیده می شود. یک متعادل کننده بار مانند “پلیس ترافیکی” است که در مقابل سرورهای شما ایستاده و درخواست های مشتری را در تمام سرورها مسیریابی می کند. اطمینان می دهد که برنامه شما حتی اگر یکی از سرورها پایین بیاید ، عملیاتی می شود.

nginx به عنوان متعادل بار

توابع اصلی یک متعادل کننده بار در زیر آمده است:

  • درخواست های مشتری یا بار شبکه را به طور کارآمد در چندین سرور توزیع می کند
  • با ارسال درخواست فقط به سرورهایی که آنلاین هستند ، در دسترس بودن و قابلیت اطمینان بالایی را تضمین می کند
  • همانطور که تقاضا را دیکته می کند ، انعطاف پذیری برای اضافه کردن یا تفریق سرورها را فراهم می کند

تنظیم nginx به عنوان متعادل بار

قبل از تنظیم تعادل بار Robin Round Round ، باید NGINX را روی سرور خود نصب کنید. می توانید آن را به سرعت با استفاده از apt-get نصب کنید:

sudo apt-get install nginx

برای تنظیم یک متعادل کننده بار رابین دور ، ما باید از ماژول بالادست NGINX استفاده کنیم. ما پیکربندی Balancer LINGL را در تنظیمات NGINX به روز خواهیم کرد. بیایید پیکربندی وب سایت شما را باز کنیم. به خاطر این مثال ، من از پرونده پیکربندی پیش فرض استفاده می کنم

sudo vi /etc/nginx/sites-available/default

ما باید پیکربندی تعادل بار را به فایل اضافه کنیم تا تنظیم کننده بار با NGINX پیکربندی کنیم. ابتدا باید ماژول بالادست را برای تعادل بار در بالادست NGINX که به نظر می رسد شامل شود:

upstream backend  {
  server backend1.example.com;
  server backend2.example.com;
  server backend3.example.com;
}

از این پشتی بالادست به عنوان نقطه پایانی پروکسی خود در بلوک سرور خود استفاده کنید:

server {
  location / {
    proxy_pass  http://backend;
  }
}

nginx را مجدداً راه اندازی کنید

sudo service nginx restart

تا زمانی که تمام سرورها را در جای خود داشته باشید ، اکنون باید متوجه شوید که تعادل بار منبع باز NGINX شروع به توزیع بازدید کنندگان در سرورها به طور مساوی خواهد کرد. این توزیع برابر ، تعادل بار رابین را دور می نامد.

بخشنامه های بالادست

در آخرین مثال ما ، ما از یک ماژول بالادست ساده برای انجام تعادل بار رابین دور برای توزیع ترافیک به طور مساوی در بین سرورها استفاده کردیم. با این حال ، دلایل زیادی وجود دارد که این ممکن است کارآمدترین راه برای کار با ترافیک نباشد. چندین دستورالعمل وجود دارد که می توانیم از آنها برای هدایت مؤثرتر بازدید کنندگان سایت استفاده کنیم.

وزن

یکی از راه های شروع تخصیص کاربران به سرورهایی با دقت بیشتر ، اختصاص وزن خاص به دستگاه های خاص است. NGINX به ما اجازه می دهد تا شماره ای را مشخص کنیم که نسبت ترافیکی را که باید به هر سرور هدایت شود ، مشخص کنیم. یک تنظیم متعادل بار که شامل وزن سرور است می تواند به این شکل باشد:

upstream backend  {
  server backend1.example.com weight=1;
  server backend2.example.com weight=2;
  server backend3.example.com weight=4;
}

وزن پیش فرض 1 است. با وزن 2 ، Backend2.example دو برابر ترافیک Backend1 ارسال می شود ، و Backend3 با وزن 4 ، با دو برابر ترافیک از Backend2 و چهار برابر بیشتر از پس زمینه برخورد خواهد کرد. 1

هش

IP Hash به سرورها اجازه می دهد تا با توجه به آدرس IP خود به مشتری پاسخ دهند و بازدید کنندگان را هر بار که بازدید می کنند به همان VPS برگردانند (مگر اینکه آن سرور پایین باشد). اگر یک سرور غیرفعال باشد ، باید به صورت پایین مشخص شود. سپس تمام IP هایی که قرار بود به سرور پایین بروند ، سپس به یک گزینه جایگزین هدایت می شوند. پیکربندی زیر مثالی را ارائه می دهد:

upstream backend {
  ip_hash;
  server   backend1.example.com;
  server   backend2.example.com;
  server   backend3.example.com  down;
 }

حداکثر شکست می خورد

با توجه به تنظیمات پیش فرض Roun-Robin ، Balancer Load Application NGINX به ارسال داده ها به سرورهای خصوصی مجازی ادامه خواهد داد ، حتی اگر سرورها پاسخ ندهند. Max Fails می تواند به طور خودکار با ارائه سرورهای بی پاسخ برای مدت زمان مشخصی از این امر جلوگیری کند. دو عامل مرتبط با حداکثر وجود دارد: حداکثر \ _fails و سقوط \ _timeout. Max Fails به حداکثر تعداد تلاش های ناکام برای اتصال به سرور که قبل از غیرفعال بودن در نظر گرفته می شود ، اشاره دارد. Fall_Timeout طول آن را نشان می دهد که سرور غیرفعال تلقی می شود. پس از اتمام زمان ، تلاش های جدید برای رسیدن به سرور دوباره راه اندازی می شود. مقدار پیش فرض زمان بندی 10 ثانیه است. یک پیکربندی نمونه ممکن است به این شکل باشد:

upstream backend  {
  server backend1.example.com max_fails=3  fail_timeout=15s;
  server backend2.example.com weight=2;
  server backend3.example.com weight=4;
}

نتیجه:

در این آموزش تعادل بار NGINX ، ما در مورد NGNIX ، تعادل بار و نحوه تنظیم تعادل بار Nginx برای توزیع ترافیک خود در چندین سرور آموخته ایم. ما همچنین الگوریتم های مختلف متعادل کننده بار مانند Round-Robin ، Hash و Max را بررسی کردیم. اگر برنامه ای را با حجم بالا اجرا می کنید و باید بار را در سرورهای مختلف توزیع کنید ، NGINX یکی از بهترین گزینه ها برای شما است. و از همه مهمتر این سرور وب 100 ٪ رایگان و منبع باز است. _ شما می توانید در توییتر ، LinkedIn و صفحه Facebook ما به ما بپیوندید. چه متعادل کننده بار قدرتمند دیگری برای بهبود در دسترس بودن منابع سرورهای شما و کارآیی __do استفاده می کنید؟ بشر اگر سوالی یا بازخورد دارید ، لطفاً در تماس باشید.

کاوش کنید

ممکن است مقالات زیر را در زیر بیابید