Browse Ask a Question
 
Tools Add
Rss Categories

HTTP Load Balancing to Three Real Web Servers

Author: Partian Co Reference Number: AA-00255 Views: 1491 Created: 2017-05-08 09:42 Last Updated: 2017-09-27 16:16 100 Rating/ 1 Voters


  راه اندازی Load Balancing

 


نکته:

در این آموزش از FortiOS 5.2.10 استفاده شده است.

در این آموزش به بررسی چگونگی ایجاد Load Balancing بین سه عدد وب سرور می پردازیم. در این مثال یک Virtual Web Server با آدرس 192.168.37.4 به سه وب سرور مذکور که در پشت یک Fortigate قرار گرفته اند Map می شود.

مرحله اول:
  •  در ابتدا به ازای هر وب سرور، یک HTTP Health Check ایجاد کنید. بدین منظور از منوی سمت چپ به مسیر Policy & Objects > Load Balance > Health Check رفته و در صفحه ی جدید از نوار بالای صفحه گزینه ی Create New را انتخاب کرده و مطابق شکل تنظیمات را انجام دهید.



نکته:

  • ویژگی Health Check، دستگاه Fortigate را مقدور می سازد که توانایی پاسخگویی وب سرور به درخواست ها را مورد بررسی قرار دهد.
  • چون این آموزش بررسی HTTP Load Balancing می باشد برای فیلد Type گزینه ی HTTP را انتخاب کنید.
  • برای فیلد Port اگر مقدار صفر را انتخاب کنید، Health Check Monitor شماره پورت تعریف شده در Real Server را به عنوان شماره پورت در نظر می گیرد. کاربرد آن در مواقعی است که شما از یک Health Check Monitor برای چندین Real Server استفاده می کنید. در این مثال مقدار 80 برای فیلد فوق در نظر گرفته شد.
  • در فیلد URL باید IP Address مربوط به Real Server را وارد کنید.
  • فیلد Matched Content، برای تست درستی عملکرد یک سرویس وب بکار می رود. روش کار به این صورت است که اگر Real Server در جواب درخواست، مقدار تعیین شده در این فیلد را برگرداند، دستگاه Fortigate به درستی عملکرد وب سرور پی می برد.
  • در فیلد Interval مشخص می کنید که عمل Health Check هر چند ثانیه یک بار اتفاق بیافتد.
  • اگر Reply در مدت زمانی که توسط فیلد Timeout تعیین شده، دریافت نگردد عمل Health Check مجددا در هر ثانیه تکرار می گردد.
  • اگر به تعداد دفعات تعیین شده در فیلد Retry عمل Health Check انجام شود و هیچ گونه پاسخی از طرف Real Server دریافت نگردد، Load Balancing دیگر ترافیک را به سمت Server فوق نمی فرستد.به محض این که مجددا پاسخگویی سرور فوق توسط Health Check تایید شد، Load Balancing مجددا ترافیک را به سمت سرور فوق می فرستد.

مرحله دوم:
  •  در ادامه یک HTTP Virtual Server ایجاد کنید. بدین منظور از منوی سمت چپ به مسیر Policy & Objects > Load Balance > Virtual Servers رفته و در صفحه ی جدید از نوار بالای صفحه گزینه ی Create New را انتخاب کرده و مطابق شکل تنظیمات را انجام دهید.

نکته:

  • توسط فیلد Type یک پروتکل برای انجام عمل Load Balance توسط Virtual Server انتخاب می کنید. اگر شما پروتکل های کلی همانند IP ،TCP و یا UDP را انتخاب کنید، Virtual Server تمامی Session های پروتکل های فوق را Load Balance می کند. اگر شما پروتکل های خاص همانند HTTP،HTTPS و یا SSL را انتخاب کنید، ویژگی های دیگری از قبیل Persistence و HTTP Multiplexing را جهت انجام تنظیمات در Load Balancing خواهید داشت.
  • برای فیلد Interface، پورت سمت اینترنت را انتخاب کنید.
  • برای فیلد Virtual Server IP، باید Public IP Address مربوط به وب سرور را وارد کنید.
  • مقدار فیلد Virtual Server Port، با توجه به مقداری که برای فیلد Type انتخاب می کنید، تعیین می گردد. به عنوان مثال اگر شما گزینه ی HTTP  را برای فیلد Type تعیین کنید، به طور معمول باید پورت 80 را برای Virtual Server Port انتخاب کنید.در زیر شماره پورت هایی که عموما برای پروتکل های موجود در فیلد Type در نظر گرفته می شود را مشاهده می کنید:

HTTP: Port 80

HTTPS: Port 443

IMAPS: Port 993

POP3S: Port 995

SMTPS: Port 465 

  • فیلد Load Balance Method روش Load Balance شدن Session ها به سمت Real Server را تعیین می کند. در ادامه به بررسی گزینه های موجود برای این فیلد می پردازیم.
  1.  Source IP Hash: در این روش ترافیک به صورت استاتیک و به طور مساوی بین Real Server ها توزیع می شود. این روش Persistence یا همان ثبات و ماندگاری را برای شما مهیا می کند زیرا در این روش همیشه Source Address ها به سمت همان Real Server ای که در دفعات قبل رفته اند، فرستاده می شوند. این روش Stateless است یعنی اگر یکی از Real Server ها به هر دلیل از مدار خارج شد عمل توزیع تغییر کرده و Persistence از بین می رود.
  2. Round Robin: در این روش درخواست جدید به نوبت به سمت Real Server بعدی می رود. به عبارت دیگر Real Server ها به نوبت درخواست ها را دریافت می کنند. در واقع با همه ی Real Server ها، صرف نظر از زمان پاسخ و یا تعداد اتصالهای مربوط به هر Real Serve، به صورت یکسان بر خورد می شود و همه در یک اولویت جهت دریافت ترافیک قرار می گیرند. البته به Real Server های خاموش و یا آن هایی که در دسترس نیستند ترافیک تعلق نمی گیرد.
  3. Weighted: در این روش Real Server هایی که دارای Weight بالاتری هستند، درصد بیشتری از ترافیک را دریافت می کنند. اگر این گزینه را انتخاب کردید باید به هر Real Server یک مقدار مشخص از Weight را اختصاص دهید.
  4. First Alive: در این روش همیشه Session ها به سمت اولین Real Server پاسخگو فرستاده می شود. این روش Fail Over Protection را فراهم می کند. بدین ترتیب که همیشه Session ها را به سمت اولین Real Server آماده و پاسخگو می فرستد و اگر Real Server فوق از کار افتاد، به سمت Real Server پاسخگو ی بعدی می فرستد. چک کردن Real Server های آماده و پاسخگو به ترتیب اضافه کردن آن ها در هنگام تنظیمات اولیه Virtual Server انجام می شود. یعنی Session ها به سمت هر سروری که زودتر در تنظیمات Virtual Server اضافه شده است  فرستاده می شوند، البته مادامی که سرور فوق آماده و پاسخگو باشد.
  5. Least RTT: در این روش Sessionها به سمت Real Server با کمترین Round Trip Time هدایت می شوند. Round Trip Time توسط Ping Health Check Monitor تعیین می شوند و در صورت عدم تنظیمات Ping Health Check Monitor در Virtual Server، مقدار آن برابر با صفر در نظر گرفته می شود.
  6. Least Session: در این روش Session ها به سمت Real Server ی که کمترین تعداد اتصال را در زمان حال دارد هدایت می شوند. این روش در مواردی که Real Server ها قابلیت های مشابه و یکسان دارند، استفاده می شود و عملکرد بهتری دارد.
  7. HTTP Host: در این روش از فیلد Host در HTTP Header، جهت هدایت Session به سمت Real Server مورد نظر استفاده می شود.
  • با استفاده از فیلد Persistence، اطمینان حاصل می کنید که یک کاربر به همان Real Server ای وصل شود، که در درخواست قبلی متصل شده است. گزینه های موجود برای این فیلد None و HTTP Cookie و SSL Session ID می باشد. اگر از Persistence در تنظیمات خود استفاده کنید دستگاه Fortigate بر اساس تنظیماتی که در رابطه با فیلد Load Balance Method انجام داده اید، یک Session جدید را به سمت یک Real Server موجود هدایت می کند. اگر این Session حاوی HTTP Cookie و یا یک SSL Session ID باشد، دستگاه Fortigate تمامی Session های قبلی که دارای HTTP Cookie و یا SSL Session ID مشابه باشند را به سمت Real Server می فرستد.
  • فیلد HTTP Multiplexing دارای دو گزینه ی زیر می باشد:
  1. Multiplex HTTP Requests/Responses Over a Single TCP Connection: با انتخاب این گزینه می توانید چندین درخواست از سمت کاربران را به یک TCP Connection موجود بین Fortigate و Real Server اختصاص دهید.
  2. Preserve Client IP: از این گزینه برای نگهداری IP Address کاربران در X-Forwarded-For HTTP Header  استفاده می شود. این گزینه زمانی که بخواهید Log Messages ها را به سمت کاربر بفرستید کاربرد دارد. اگر این گزینه فعال نگردد، IP Address مربوط به Fortigate در HTTP Header فوق قرار می گیرد.
  • فیلد SSL Offloading به جهت سرعت بخشیدن اتصال SSL یک کاربر به سرور استفاده می شود.
  • فیلد Certificate به همراه فیلد SSL Offloading استفاده می شود. اندازه ی Certificate Key باید 1024 یا 2048 بیت باشد.
  • برای فیلد Health Check باید Health Check های ساخته شده در مرحله قبلی را از لیست Available به لیست Selected منتقل کنید.

مرحله سوم:
  •  در این مرحله سه Real Server ایجاد کرده و بین آن ها و Virtual Server ارتباط برقرار می کنید. بدین منظور از منوی سمت چپ به مسیر Policy & Objects > Load Balance > Real Servers رفته و در صفحه ی جدید از نوار بالای صفحه گزینه ی Create New را انتخاب کرده و مطابق شکل تنظیمات را انجام دهید.


نکته:

  • در فیلد مربوط به IP Address باید آدرس سرور های موجود در شبکه ی داخلی قرار داده شود.
  • به دلیل اینکه در ساخت Virtual Server، فیلد Load Balance Method از نوع Weighted انتخاب نشد، در این مرحله برای فیلد Weight در هر سه Real Server مقدار 1 به طور پیش فرض در نظر گرفته شده و این فیلد قابل پیکربندی نمی باشد.
  • اگر برای فیلد Maximum Connections مقدار صفر در نظر گرفته شود، محدودیتی در تعداد Connection به Real Server ها در نظر گرفته نمی شود.
 
مرحله چهارم:
  • در ادامه یک Policy ایجاد کرده و از Virtual Server ساخته شده در مراحل قبل در Policy فوق استفاده کنید. بدین منظور از منوی سمت چپ به مسیر Policy & Objects > Policy > IPv4 رفته و در صفحه ی جدید از نوار بالای صفحه گزینه ی Create New را انتخاب کرده و مطابق شکل تنظیمات را انجام دهید.

نکته:

  • برای فیلد Incoming Interface، پورت متصل به اینترنت را در نظر گرفته و برای فیلد Outgoing Interface پورت متصل به Real Server را انتخاب کنید. همچنین برای فیلد Destination Address باید Virtual Server ساخته شده در مراحل قبل را وارد کنید. با ایجاد این Policy، کاربران می توانند از طریق اینترنت به وب سرور دسترسی داشته باشند.

 






 











Rss Comments
  • There are no comments for this article.
Info Add Comment
Nickname: Your Email: Subject: Comment:
Enter the code below:
Info Ask a Question