ویرگول
ورودثبت نام
حسین جعفری
حسین جعفری
خواندن ۱۵ دقیقه·۱۰ روز پیش

قهرمان مخفی بارگذاری ترافیک HAProxy

امروزه هرکسی که با وب‌سایت‌ها و اپلیکیشن‌های بزرگ سروکار داره، می‌دونه که یکی از بزرگ‌ترین چالش‌ها، مدیریت ترافیک و بالا نگه داشتن سرورهاست. وقتی تعداد کاربران زیاد می‌شه، اگر نتونی درست ترافیک رو بین سرورهات پخش کنی، دیر یا زود زیر فشارشون له می‌شی! اینجا جاییه که HAProxy به عنوان یه قهرمان مخفی وارد بازی می‌شه.

اما چرا HAProxy؟ چرا از ابزارهایی مثل Nginx یا Traefik استفاده نکنیم؟ بیاید یه مقایسه ریز و جذاب داشته باشیم و بعد بریم سراغ اینکه HAProxy چیه و چرا انقدر تو این حوزه محبوبه.

‏ HAProxy در برابر Nginx و Traefik – هرکس تو کار خودش استاده!

خب، اگه داری از خودت می‌پرسی چرا HAProxy رو انتخاب کنیم و مثلاً Nginx یا Traefik بهتر نیستن، باید بگم که همه این ابزارها توی دنیای خودشون کاربردهای فوق‌العاده‌ای دارن. بیاید یه نگاه سریع بندازیم:

‏ Nginx – هم وب‌سرور، هم Load Balancer

  • ‏Nginx یه وب‌سرور معروفه که هم می‌تونه درخواست‌های HTTP رو سرو کنه و هم به عنوان Load Balancer کار کنه.
  • قدرت در سرو کردن فایل‌ها: Nginx برای سرو کردن استاتیک فایل‌ها (مثل HTML و CSS) فوق‌العاده سریع و بهینه است.
  • قابلیت Load Balancing پایه‌ای: برای بارگذاری ترافیک خوبه، اما وقتی به تنظیمات پیچیده و خاص نیاز داری (مثل SSL termination پیشرفته)، یه مقدار محدودیت داره.

‏ Traefik – ستاره دنیای کلاستر و میکروسرویس‌ها

  • ‏Traefik یه ابزار فوق‌العاده مدرن برای Load Balancing و Reverse Proxyه، که بیشتر توی دنیای Docker و Kubernetes محبوب شده.
  • خودکار بودن: Traefik به راحتی می‌تونه با سرویس‌های کلاستر مثل Docker و Kubernetes هماهنگ بشه و کانفیگ خودش رو خودکار به‌روزرسانی کنه.
  • کمی کند در پردازش ترافیک سنگین: برای کارهای سبک عالیه، ولی اگه تعداد درخواست‌های خیلی زیادی داری، شاید HAProxy بهتر جواب بده.

‏HAProxy – قهرمان بی‌چون و چرای Load Balancing

وقتی حرف از Load Balancing پیش میاد، HAProxy یکی از قدرتمندترین و قدیمی‌ترین ابزارهای این حوزه به حساب میاد. توی دنیایی که هر روز درخواست‌ها و ترافیک بیشتری به سمت سرورها روانه می‌شه، HAProxy با عملکرد بی‌نقص و ویژگی‌های پیشرفته‌اش، بهترین انتخاب برای کنترل و توزیع ترافیکه.

عملکرد بی‌نظیر در ترافیک‌های سنگین

وقتی صحبت از میلیون‌ها درخواست در لحظه به میونه، HAProxy بدون هیچ لغزشی ترافیک رو به بهترین شکل بین سرورها پخش می‌کنه. مهم نیست چندتا سرور داری، HAProxy مطمئن می‌شه که هرکدوم به درستی و با بهینه‌ترین حالت ممکن درخواست‌ها رو پاسخ بدن.

ویژگی‌های کلیدی HAProxy:

  • ‏Load Balancing پیشرفته: HAProxy ترافیک رو به صورت کاملاً هوشمند بین سرورها پخش می‌کنه. از الگوریتم‌های ساده مثل Round-Robin گرفته تا الگوریتم‌های پیچیده‌تر مثل Least Connections و Source IP Hash، می‌تونی بهترین روش رو برای نیازت انتخاب کنی.
  • ‏SSL Termination: با استفاده از SSL Termination، ترافیک رمزنگاری‌شده از HTTPS رو می‌گیری، رمزگشایی می‌کنی و بعد به سرورهای بک‌اند ارسال می‌کنی. این باعث می‌شه فشار پردازش SSL از روی سرورهای بک‌اند برداشته بشه.
  • ‏Health Check: همیشه باید مطمئن باشی که سرورهات سالم هستن. HAProxy به‌صورت خودکار وضعیت سلامت سرورها رو چک می‌کنه و اگر یکی از اون‌ها مشکل داشته باشه، درخواست‌ها رو به سرورهای سالم هدایت می‌کنه.
  • ‏Rate Limiting: با این قابلیت، می‌تونی تعداد درخواست‌هایی که از یک IP خاص میاد رو محدود کنی و از حملات DDoS جلوگیری کنی. یه ابزار عالی برای حفظ امنیت سرورهات!

ویژگی‌های پیشرفته HAProxy:

علاوه بر این‌ها، HAProxy با داشتن قابلیت‌های پیشرفته زیر، به یه ابزار قدرتمند تبدیل شده:

  • ‏SSL Offloading: با این قابلیت، می‌تونی پردازش SSL رو از سرورهای بک‌اند برداری و تمام این کار رو روی HAProxy انجام بدی. این به کاهش بار روی سرورهای اصلی کمک زیادی می‌کنه.
  • ‏ACLها: با ACL (Access Control Lists)، می‌تونی درخواست‌ها رو بر اساس ویژگی‌هایی مثل URL، HTTP Header یا حتی کوکی‌ها فیلتر و مسیریابی کنی.
  • ‏Content Switching: این قابلیت بهت اجازه می‌ده براساس محتوای درخواست (مثل URL)، درخواست‌ها رو به backendهای مختلف هدایت کنی. مثلاً درخواست‌های مربوط به /blog رو به یه سری سرورهای خاص بفرستی و بقیه درخواست‌ها رو به سرورهای دیگه

انواع روش های LoadBalancing

این ابزار توی لایه‌های 4 (لایه TCP) و 7 (لایه اپلیکیشن) شبکه کار می‌کنه و می‌تونه هم ترافیک TCP و هم ترافیک HTTP/HTTPS رو مدیریت کنه. هرکدوم از این‌ها برای یه نوع سناریو و نیاز خاص طراحی شدن. حالا بیایید ببینیم که هر کدوم چی هستن و کجاها به درد می‌خورن.

1. بدون Load Balancer – روزهای بی‌خیالی!

تصور کن که یه سایت داری و هیچ Load Balancer ای هم استفاده نکردی. یعنی کاربر مستقیم میاد روی سرورت و درخواستش رو می‌فرسته. خب، همه‌چی خوبه تا اینکه سرورت بخواد از کار بیفته! اون وقت چی؟ هیچی، کاربر توی حسرت می‌مونه و سایتت بالا نمیاد.

یا حتی اگه ترافیک بالا باشه، سرورت می‌تونه زیر بار درخواست‌ها به زانو دربیاد. در این حالت، کاربرا یا باید ساعت‌ها منتظر بمونن تا صفحه لود بشه، یا کلاً بیخیال سایتت بشن.

نتیجه: بدون Load Balancer، آینده تاریکه!

بدون Load Balancer
بدون Load Balancer

‏ 2. Load Balancing در لایه 4 – ساده اما کاردرست!

خب، وقتی تصمیم می‌گیری کمی حرفه‌ای‌تر بشی، وارد Load Balancing لایه 4 می‌شی. توی این حالت، HAProxy یا هر Load Balancer دیگه، درخواست‌های کاربرا رو براساس آدرس IP و پورت مدیریت می‌کنه.

یعنی چی؟ یعنی هر درخواست که برای سایتت میاد، Load Balancer براساس IP و پورت، اون رو به یکی از سرورهای بک‌اند می‌فرسته. مثلاً اگه کسی آدرس http://Hosseinjafari.com رو بزنه، ترافیک روی پورت 80 می‌ره به یکی از سرورهای بک‌اند.

یه مثال ساده‌اش اینه:

  • کاربر درخواست رو می‌فرسته به Load Balancer.
  • ‏Load Balancer تصمیم می‌گیره که این درخواست رو بفرسته به کدوم سرور.
  • سرور بک‌اند جواب کاربر رو می‌ده.

توی لایه 4 معمولاً همه سرورها باید محتوای یکسان ارائه بدن، چون اگه نه، ممکنه کاربرها صفحات مختلف و عجیبی رو ببینن.

‏ 3. Load Balancing در لایه 7 – پیچیده اما هوشمند!

خب، اگه بخوای یه قدم جلوتر بری و ترافیک رو براساس محتوای درخواست‌ها مدیریت کنی، باید بری سراغ Load Balancing در لایه 7. این لایه دقیقاً همون جاییه که HAProxy می‌تونه باهوش‌تر بشه و براساس URLها، هدرهای HTTP و حتی کوکی‌ها، درخواست رو به سرورهای مختلف بفرسته.

مثلاً فرض کن یه سایت داری که هم یه بخش وبلاگ داره و هم یه اپلیکیشن. حالا می‌خوای هرکی وارد وبلاگ شد بره به یه سری سرور که فقط بلاگ رو سرو کنن و اگه کسی وارد بخش اپلیکیشن شد، بره به یه سرور دیگه.

مثال کد پیکربندی این شکلی می‌شه:

frontend http bind *:80 mode http acl url_blog path_beg /blog use_backend blog-backend if url_blog default_backend web-backend

اینجا، ACL ها تعیین می‌کنن که اگه کسی وارد blog/ شد، ترافیک بره سمت blog-backend. اگه وارد چیز دیگه‌ای شد؟ خب، ترافیک به web-backend می‌ره.

اینجوری می‌تونی به راحتی یه سایت چندمنظوره رو مدیریت کنی و هر بخشش رو به سرورهای مختلف بفرستی.

4. مقایسه و نتیجه‌گیری – کدوم رو انتخاب کنیم؟

  • بدون Load Balancer: همین اول بگم که این بدترین حالته. وقتی سایتت کوچیکه و هنوز نمی‌خوای برای چیزای حرفه‌ای هزینه کنی، ممکنه قابل قبول باشه، ولی هر لحظه امکان قطعی وجود داره.
  • لایه 4 (Layer 4): ساده، کاردرست و خوب برای بیشتر سایت‌ها. وقتی محتوای همه سرورات یکسانه و فقط می‌خوای ترافیک رو پخش کنی، این عالیه.
  • لایه 7 (Layer 7): اگه بخوای محتوای مختلف روی URLها یا درخواست‌های خاص رو بین سرورها پخش کنی، لایه 7 خیلی باهوش‌تر عمل می‌کنه. برای پروژه‌های پیچیده و وب‌سایت‌هایی که چندین اپلیکیشن یا سرویس دارن، بهترین انتخابه.

‏ اجزای اصلی HAProxy – هر چیزی که باید بدونی تا سرورت بی‌نقص کار کنه!

خب، اگه تاحالا با HAProxy کار کرده باشی، می‌دونی که همه‌چیز توی یه فایل به اسم haproxy.cfg تنظیم می‌شه. این فایل کلیدی همه رفتارهای HAProxy رو کنترل می‌کنه، از دریافت ترافیک تا فرستادنش به سرورهای بک‌اند. اما صبر کن، فقط با frontend و backend کار تموم نمی‌شه! باید تنظیمات بیشتری مثل global، defaults و حتی listen رو هم درست کنی. این یه قالب کلی از haproxy.cfg هست و در ادامه کامل توضیح میدم هر کدوم چی هست

global # process-level settings go here defaults # default settings go here frontend listener # a frontend that accepts requests from clients backend webservers # servers that fulfill the requests

پس بیایید با هم ببینیم که این اجزا چی هستن و هرکدوم چه نقشی دارن. و البته، قول می‌دم که خسته‌کننده نباشه و حسابی فان بنویسم!

‏1. Global

‏ Global در واقع همون‌جاییه که تنظیمات همه‌چیز رو تعیین می‌کنی. این بخش حکم مرکز فرماندهی HAProxy رو داره. هرچیزی که توی بخش global تنظیم می‌کنی، روی کل HAProxy اعمال می‌شه. مثلاً می‌تونی کاربر و گروه رو تنظیم کنی، یا تعیین کنی HAProxy کجا لاگ‌هاش رو بنویسه

global
log /dev/log local0
log /dev/log local1 notice
user haproxy
group haproxy
daemon

توضیح بخش‌های بالا:

  • ‏log: اینجا می‌گی که لاگ‌ها رو کجا بنویسه (مثل syslog).
  • ‏user و group: مشخص می‌کنی که HAProxy با چه کاربر و گروهی اجرا بشه.
  • ‏ daemon: این دستور می‌گه که HAProxy توی پس‌زمینه (background) اجرا بشه، تا مثل یه قهرمان مخفی کارش رو انجام بده!

‏2. Defaults – قوانین کلی و عمومی!

خب، حالا که تنظیمات global رو انجام دادی، می‌رسیم به defaults. این بخش مثل یه راهنمای عمومی برای همه‌ی frontend و backend‌ ها عمل می‌کنه. یعنی هر تنظیماتی که توی defaults بنویسی، به‌صورت پیش‌فرض روی همه بخش‌ها اعمال می‌شه، مگه اینکه خودت اون رو برای یه frontend یا backend خاص تغییر بدی.

defaults log global mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms

توضیح بخش‌های بالا:

  • ‏log: می‌گه که لاگ‌ها رو از تنظیمات global استفاده کنه.
  • ‏mode: اینجا مشخص می‌کنی که همه frontend/backendها به‌طور پیش‌فرض از چه پروتکلی استفاده کنن (در اینجا HTTP).
  • ‏timeouts: تنظیمات timeout برای ارتباطات بین کلاینت و سرور. مثلاً اگر بعد از 5 ثانیه هنوز نتونسته باشه به سرور متصل بشه، ارتباط رو قطع می‌کنه.

‏3. Frontend – دروازه ورود ترافیک!

خب، بریم سراغ بخش جذاب! Frontend مثل دروازه‌بان تیم فوتباله. هر ترافیکی که از سمت کاربرا به سرور تو میاد، اول از این دروازه عبور می‌کنه. توی بخش frontend مشخص می‌کنی که درخواست‌های ورودی روی چه پورتی بیان و به کجا هدایت بشن.

frontend http-in
bind *:80
default_backend servers

توضیح بخش‌های بالا:

  • ‏bind: مشخص می‌کنه که HAProxy روی کدوم پورت گوش بده. اینجا پورت 80 (HTTP) رو انتخاب کردیم.
  • ‏default_backend: هر ترافیکی که به پورت 80 میاد، باید به کدوم backend هدایت بشه؟ اینجا می‌گیم که برو به servers.

‏4. Backend – مغز متفکر Load Balancing!

خب، حالا که ترافیک از دروازه رد شد، وقتشه که تصمیم بگیریم کجا بره. Backend دقیقا همون‌جاییه که درخواست‌های ورودی به سرورهای بک‌اند هدایت می‌شن. اینجا می‌تونی لیست سرورها رو مشخص کنی و حتی تعیین کنی که از چه الگوریتم Load Balancing استفاده بشه.

backend servers
balance roundrobin
server server1 127.0.0.1:8080 maxconn 32
server server2 127.0.0.1:8081 maxconn 32

توضیح بخش‌های بالا:

  • ‏balance roundrobin: از الگوریتم Round Robin برای توزیع درخواست‌ها استفاده می‌کنه. یعنی هر درخواست به ترتیب به یکی از سرورها فرستاده می‌شه.
  • ‏ server: مشخصات سرورها. server1 و server2 هرکدوم روی یه پورت خاص گوش می‌دن و maxconn تعیین می‌کنه که حداکثر چندتا کانکشن رو می‌تونن همزمان هندل کنن.

‏5. Listen

‏Listen در HAProxy ترکیبی از بخش‌های frontend و backend هست. وقتی می‌خوای هم ورودی‌ها رو مدیریت کنی و هم ترافیک رو به سرورهای بک‌اند هدایت کنی، از Listen استفاده می‌کنی. این بخش می‌تونه همزمان درخواست‌ها رو دریافت و به سرورهای درست مسیریابی کنه.

مانیتورینگ در HAProxy با Listen Stats

یکی از مهم‌ترین بخش‌های HAProxy برای محیط Production قابلیت مانیتورینگ هست. بخش Stats یا همون Statistics بهت این امکان رو می‌ده که وضعیت سلامت سرورها، تعداد اتصالات، ترافیک دریافتی و خیلی چیزهای دیگه رو به‌صورت لحظه‌ای بررسی کنی. این بخش بهت کمک می‌کنه تا مشکلات رو سریع تشخیص بدی و کارایی سرورهات رو بررسی کنی

مثال برای مانیتورینگ با Listen:

listen stats bind *:8080 mode http stats enable stats uri /stats stats auth admin:password

توضیح بخش‌های بالا:

  • ‏bind: می‌گه که روی پورت 8080 گوش بده.
  • ‏stats uri /stats: آمار و اطلاعات HAProxy رو می‌تونی روی این آدرس داشته باشی.
  • ‏stats auth: نیاز به لاگین داره (با یوزرنیم admin و پسورد password).

الگوریتم‌های Load Balancing در HAProxy – هر سناریویی یه راه‌حل!

‏HAProxy یه جعبه ابزار پر از الگوریتم‌های مختلف برای Load Balancing داره که هرکدوم برای شرایط و سناریوهای خاصی بهینه‌سازی شدن. بسته به اینکه می‌خوای ترافیک رو چطور پخش کنی و اولویت‌هات چی هست، می‌تونی از این الگوریتم‌ها استفاده کنی. حالا بیایید همه این الگوریتم‌ها رو به‌صورت کامل بررسی کنیم:

‏1. Round-Robin

  • توضیح: ساده‌ترین و شاید رایج‌ترین الگوریتم هست که درخواست‌ها رو به‌صورت چرخشی بین سرورها پخش می‌کنه. این یعنی هر درخواست به ترتیب به یکی از سرورها فرستاده می‌شه، بدون در نظر گرفتن وضعیت فعلی سرورها.
  • مناسب برای: سرورهایی که قدرت پردازش مشابهی دارن و بار کاری تقریباً یکسانی رو هندل می‌کنن.
  • مزیت: سریع و ساده.
  • عیب: اگر یه سرور کند یا پر باشه، همچنان درخواست بهش فرستاده می‌شه.

‏2. Least Connections

  • توضیح: درخواست‌ها به سروری هدایت می‌شن که کمترین تعداد اتصال فعال رو داره. این یعنی اگر یه سرور مشغول‌تر باشه و تعداد بیشتری کانکشن باز داشته باشه، درخواست‌های جدید به سرورهای کمتر مشغول ارسال می‌شن.
  • مناسب برای: سیستم‌هایی که بار کاری هر درخواست متغیره و بعضی درخواست‌ها سنگین‌تر هستن.
  • مزیت: پخش بهینه‌تر درخواست‌ها براساس ظرفیت سرورها.
  • عیب: اگه درخواست‌ها ناگهانی به تعداد زیاد بیان، ممکنه با تأخیر مواجه بشی.

‏3. Source IP Hash

  • توضیح: در این الگوریتم، ترافیک از یک IP خاص همیشه به یک سرور مشخص فرستاده می‌شه. این کار با استفاده از Hash کردن آدرس IP کاربر انجام می‌شه.
  • مناسب برای: وقتی به Session Persistence نیاز داری، یعنی می‌خوای کاربر همیشه به یه سرور خاص متصل بمونه (مثل کاربرهایی که توی یه سشن لاگین کردن).
  • مزیت: باعث حفظ سشن‌های کاربر می‌شه و کاربرها هر بار به سرور متفاوتی هدایت نمی‌شن.
  • عیب: اگر یکی از سرورها از دسترس خارج بشه، کاربرهای مرتبط با اون سرور ممکنه به مشکل بخورن.

‏4. URI Hash

  • توضیح: در این الگوریتم، درخواست‌ها براساس Hash مربوط به URI به سرورها هدایت می‌شن. یعنی URL‌های مشابه همیشه به یه سرور خاص می‌رن.
  • مناسب برای: وقتی محتواهای خاصی رو روی سرورهای خاصی نگه می‌داری و می‌خوای درخواست‌های مشابه همیشه به اون سرور خاص برن (مثل محتواهای کش‌شده).
  • مزیت: محتوای کش شده از یک سرور ثابت ارائه می‌شه و نیازی به لود دوباره از سرورهای دیگه نیست.
  • عیب: پیچیدگی در مدیریت بار روی سرورها.

‏5. HTTP Header Hash

  • توضیح: در این الگوریتم، تصمیم‌گیری براساس HTTP Header انجام می‌شه. مثلاً می‌تونی از هدرهای خاصی مثل User-Agent برای هدایت درخواست‌ها استفاده کنی.
  • مناسب برای: وقتی بخوای ترافیک رو براساس نوع مرورگر، دستگاه یا اطلاعات موجود توی هدر HTTP مدیریت کنی.
  • مزیت: انعطاف‌پذیری بالا در مدیریت ترافیک براساس ویژگی‌های خاص هر درخواست.
  • عیب: تنظیم و مدیریت پیچیده‌تر نسبت به روش‌های دیگه.

‏6. Static-rr (Weighted Round-Robin)

  • توضیح: شبیه به Round-Robin، اما با یک تغییر مهم! توی این الگوریتم، می‌تونی وزن خاصی به هر سرور اختصاص بدی. سرورهایی که وزن بیشتری دارن، درخواست‌های بیشتری دریافت می‌کنن.
  • مناسب برای: وقتی سرورها قدرت پردازشی متفاوتی دارن و می‌خوای سرورهای قوی‌تر درخواست‌های بیشتری رو هندل کنن.
  • مزیت: توزیع بار بهینه بین سرورهای قوی‌تر و ضعیف‌تر.
  • عیب: اگر وزن‌ها به‌درستی تنظیم نشن، ممکنه سرورهای قوی‌تر بیش از حد مشغول بشن.

‏7. First

  • توضیح: در این الگوریتم، سرورها به ترتیب لیست‌شده انتخاب می‌شن. یعنی همیشه اولین سرور در لیست بررسی می‌شه و تا وقتی که به حداکثر ظرفیتش نرسه، درخواست‌های بیشتری می‌گیره. اگه اون سرور پر بشه، درخواست‌ها به سرور بعدی می‌رن.
  • مناسب برای: وقتی می‌خوای اولویت خاصی برای یک یا چند سرور داشته باشی.
  • مزیت: اولویت‌بندی برای سرورهای خاص.
  • عیب: سرورهای اول ممکنه همیشه پر باشن و سرورهای آخر ممکنه هیچ درخواستی دریافت نکنن.

‏8. Random with Weight

  • توضیح: همونطور که از اسمش پیداست، درخواست‌ها به‌صورت تصادفی به سرورها فرستاده می‌شن. اما! وزن سرورها هم در نظر گرفته می‌شه. سرورهای قوی‌تر شانس بیشتری برای دریافت درخواست دارن.
  • مناسب برای: وقتی می‌خوای توزیع ترافیک به‌صورت تصادفی ولی بهینه انجام بشه.
  • مزیت: ترکیب بین تصادفی بودن و در نظر گرفتن توانایی سرورها.
  • عیب: هنوز هم کمی از کنترلت خارج هست و درخواست‌ها ممکنه همیشه به بهترین سرور نرسن.

جمع‌بندی – کدوم الگوریتم برای تو مناسبه؟

انتخاب الگوریتم مناسب Load Balancing بستگی به نیاز و سناریوی کاری داره. اگر همه سرورات مشابه هستن و ترافیک یکنواخت داری، Round-Robin کافیه. اگه نیاز داری که بار کاری سرورها متعادل بشه، Least Connections عالیه. برای Session Persistence هم حتماً از Source IP Hash استفاده کن.

هرکدوم از این الگوریتم‌ها نقاط قوت و ضعف خودشون رو دارن، پس براساس شرایط و نیازات انتخاب کن تا بهترین کارایی رو از HAProxy بگیری!

سناریوی عملی: استفاده از HAProxy به عنوان SSL Termination

فرض کن یه سایت داری که باید از HTTPS استفاده کنه و می‌خوای فشار پردازش SSL رو از روی سرورهای بک‌اند برداری. با HAProxy این کار خیلی ساده‌ست:

  1. ایجاد فایل pem برای SSL:
cat /etc/letsencrypt/archive/example.com/fullchain1.pem /etc/letsencrypt/archive/example.com/privkey1.pem > /etc/haproxy/haproxy.pem

تنظیم frontend و backend:

frontend https-in bind *:443 ssl crt /etc/haproxy/haproxy.pem default_backend servers backend servers balance roundrobin server server1 127.0.0.1:8080 check server server2 127.0.0.1:8081 check
  1. فعال کردن SSL Termination: حالا HAProxy تمام ترافیک HTTPS رو پردازش می‌کنه و درخواست‌ها به‌صورت HTTP به سرورهای بک‌اند ارسال می‌شن.

جمع‌بندی – چرا HAProxy؟

ابزار HAProxy یه ابزار قدرتمند و حرفه‌ای برای مدیریت ترافیک و Load Balancingه که توی هر شبکه‌ای که نیاز به مقیاس‌پذیری و عملکرد بالا داره، می‌درخشه. با قابلیت‌هایی مثل SSL termination، Rate Limiting و ACLها، این ابزار به یکی از مهم‌ترین انتخاب‌ها برای مدیران شبکه و DevOps تبدیل شده.

اگه می‌خوای ترافیکت رو به‌صورت حرفه‌ای مدیریت کنی و همیشه مطمئن باشی که سرورهات به‌درستی کار می‌کنن، HAProxy انتخاب بی‌نظیریه!

load balancinghaproxyآموزش haproxyابزار haproxyload balancer
شاید از این پست‌ها خوشتان بیاید