لود بالانسر و پروکسی معکوس
جواب کوتاه
لود بالانسر درخواستهای بازدیدکنندهها را میان چند سرور پخش میکند تا هیچکدام زیر بار نرود و اگر یکی خراب شد، بقیه کار را ادامه دهند. یا به نوبت میفرستد، یا به سروری که کمترین کار را دارد، و سلامت سرورها را مدام میسنجد. پروکسی معکوس سروری است که برای مردم مثل خود سایت دیده میشود، ولی درخواستها را به سرورهای پشت سرش میدهد؛ سایتهای بزرگ با آن بار را هم پخش میکنند.
سه کلمه
- لود بالانسردستگاه یا برنامهای که درخواستها را میان چند سرور پخش میکند تا هیچکدام زیر بار نرود. به فارسی «پخشکنندهی بار».
- سرور پشتیهر کدام از سرورهایی که پشت لود بالانسر کار اصلی را انجام میدهند.
- پروکسی معکوسسروری که برای مردم مثل خود سایت دیده میشود، ولی درخواستها را به سرورهای پشت سرش میدهد.
یک باجه، صف بلند
فرض کنید عوارضی یک بزرگراه فقط یک باجه داشته باشد. هر چه ماشین بیشتر شود، صف بلندتر میشود، و اگر همان یک باجه خراب شود، کل راه بسته میشود. راهحل روشن است: چند باجه، و یک راهنما که ماشینها را میان آنها پخش کند.
سایتی که بازدیدکنندهی زیاد دارد هم همین مشکل را دارد (درس سرور و کلاینت). بهجای یک سرور، چند سرور میگذارند، و جلویشان یک لود بالانسر:
دو سود دارد: زمان پاسخ بهتر میشود، چون هیچ سروری زیر بار نمیرود در حالی که بقیه بیکارند؛ و اگر یک سرور بیفتد، بقیه کار را ادامه میدهند.
راهنما چطور میفرستد
دو روش رایج:
روش کمترین شلوغی میتواند وزندار هم باشد: اگر یکی از سرورها دو برابر قویتر است، دو برابر سهم میگیرد. روش دیگری هم هست که از روی مشخصات خود درخواست، مثل نشانی بازدیدکننده، با یک حساب (درهمسازی) سرور را انتخاب میکند.
باجهی بسته
راهنما به باجهای که چراغش قرمز است ماشین نمیفرستد. لود بالانسر هم مدام از هر سرور میپرسد «سالمی؟»، و سروری را که جواب درست نمیدهد، از گروه بیرون میگذارد تا درست شود. به این سنجش سلامت میگویند؛ اینطور بازدیدکنندهها به سرور خراب فرستاده نمیشوند.
بعضی بالانسرها چند سرور آمادهبهکار هم کنار دارند: اگر سرورهای فعال کم شدند یا بار خیلی بالا رفت، آنها را وارد کار میکنند.
همیشه همان باجه
گاهی سرور چیزی از بازدیدکننده نگه میدارد، مثل سبد خرید (درس HTTP، کوکی). اگر درخواست بعدی به سرور دیگری برود، آن سرور سبد را نمیشناسد. سادهترین چاره این است که همهی درخواستهای یک نشست به همان سرور بروند؛ به این چسبیدن میگویند.
هزینهاش این است که اگر آن سرور بیفتد، نشستهایی که به آن چسبیده بودند از دست میروند. راه بهتر این است که سرورها اطلاعات نشست را در یک پایگاه دادهی مشترک بگذارند، تا هر سروری بتواند به هر درخواستی جواب بدهد.
دفتر جلوی ساختمان
در ساختمان یک شرکت بزرگ، مراجعان با دفتر جلوی ساختمان روبهرو میشوند، نه با کارمندان. دفتر کار را میگیرد، به کارمند درست میدهد و جواب را برمیگرداند. پروکسی معکوس همین است: برای مردم مثل خود سایت دیده میشود، ولی هر درخواست را به یکی از سرورهای پشت سرش میدهد.
سودش این است که سرورهای اصلی میتوانند پشت دیوار آتش، در شبکهی داخلی، بمانند و فقط پروکسی معکوس رو به اینترنت باشد. سایتهای بزرگ از پروکسی معکوس برای پخش بار میان سرورهایشان هم استفاده میکنند. ولی خطرش هم هست: چون پروکسی معکوس ترافیک را باز میبیند، اگر کسی آن را بگشاید، او هم همه را میبیند.
پروکسی معمولی برعکس است: کنار کاربر در یک شبکهی داخلی است و برای او چیزی را از اینترنت میآورد. یکی جلوی سرورهاست، یکی جلوی کاربرها.
کارهای دیگر
- باز کردن TLS: رمزگشایی HTTPS کار سنگینی است (درس HTTPS)؛ بالانسر میتواند آن را انجام دهد تا سرورهای پشتی سبکتر کار کنند.
- نگهداشتن محتوای ثابت: عکسها و فایلهایی را که عوض نمیشوند نگه میدارد و بی پرسیدن از سرورها جواب میدهد.
- DNS نوبتی: سادهترین پخش بی هیچ دستگاه جدا: چند IP برای یک نام، که به نوبت داده میشوند (درس DNS).
سه اشتباه
- «لود بالانسر سرور را تندتر میکند.»لود بالانسر خودش کار سرور را نمیکند؛ بار را میان چند سرور پخش میکند تا هیچکدام زیر بار نرود و اگر یکی افتاد، بقیه کار را ادامه دهند.
- «چسباندن نشست به یک سرور هیچ هزینهای ندارد.»اگر همان سرور بیفتد، نشستهایی که به آن چسبیده بودند از دست میروند؛ راه بهتر این است که سرورها به نشست وابسته نباشند.
- «پروکسی معکوس همان پروکسیای است که مرورگر به کار میبرد.»پروکسی معکوس جلوی سرورهای یک سایت مینشیند؛ پروکسی معمولی کنار کاربر است و برای او از بیرون چیزی میآورد.
جمعبندی. آنچه از این درس با خودتان میبرید.
- لود بالانسر درخواستها را میان چند سرور پشتی پخش میکند.
- روشها: نوبتی، کمترین اتصال (شاید وزندار)، درهمسازی.
- سنجش سلامت: سرور خراب از گروه بیرون میماند.
- چسبیدن نشست ساده است ولی با افتادن آن سرور، نشست از دست میرود.
- پروکسی معکوس جلوی سرورها مینشیند؛ سرورها پشت دیوار آتش میمانند.
- بالانسر میتواند TLS را باز کند و محتوای ثابت را نگه دارد.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.