تعادل بار توزیع بار کاری در میان چندین گره است. این معمولاً برای متعادلسازی ترافیک HTTP بر روی چندین سرور که به عنوان یک front-end وب عمل میکنند، استفاده میشود.
چندین راه برای پیکربندی تعادل بار در nopCommerce وجود دارد:
- استفاده از دستگاههای اتوسکیلینگ مبتنی بر ابر مانند Microsoft's Azure Web Apps. لطفاً اطلاعات بیشتر را اینجا بیابید.
- پیکربندی تعادل بار با مزارع وب IIS. این روش در زیر توضیح داده شده است.
ما به شدت توصیه میکنیم قبل از شروع پیکربندی یک مزرعه وب برای nopCommerce، این آموزش توسط مایکروسافت را مطالعه کنید. مایکروسافت دو راه برای ساخت یک مزرعه وب با سرورهای IIS پیشنهاد میکند:
- زیرساخت محتوای محلی
- زیرساخت محتوای شبکه اشتراکی
nopCommerce از هر دو روش پشتیبانی میکند و با استفاده از تکثیر فایل سیستم توزیعشده (DFSR) اگر از زیرساخت محتوای محلی استفاده میکنید، یا با استفاده از یک مکان مرکزی برای مدیریت محتوا با زیرساخت محتوای شبکه اشتراکی، تکثیر محتوا را مدیریت میکند.
پیکربندی nopCommerce
اول از همه، باید تنظیمات اولیه مزرعه وب خود را در IIS پیکربندی کنید و اولین نمونه از فروشگاه nopCommerce خود را در آنجا اضافه کنید. سپس، باید چند تنظیم در بخش مدیریت nopCommerce پیکربندی کنید تا به nopCommerce اجازه دهید با مزارع وب کار کند:
به پیکربندی → تنظیمات → تمام تنظیمات (پیشرفته) بروید. تنظیم mediasettings.useabsoluteimagepath را پیدا کنید و مقدار آن را به false تغییر دهید.
به پیکربندی → تنظیمات → تنظیمات برنامه بروید و تب پیکربندی کش توزیعشده را پیدا کنید. چکباکس استفاده از کش توزیعشده را انتخاب کنید و گزینه مورد نظر خود را انتخاب کنید:
- Redis. در این حالت، فقط نیاز دارید رشته اتصال به سرور Redis خود را در زیر وارد کنید.
- SQL Server. در این حالت، ابتدا باید یک جدول جدید در پایگاه داده خود با استفاده از دستور "sql-cache create" آماده کنید. بیشتر در مورد آن در مستندات مایکروسافت اینجا بخوانید. سپس فیلدهای رشته اتصال، نام schema و نام جدول را پر کنید.
از آنجایی که مزرعه وب ما از Application Request Routing (ARR) برای کنترل ترافیک با استفاده از یک سرور پروکسی استفاده میکند، چکباکس استفاده از سرورهای پروکسی را انتخاب کنید.
روی دکمه ذخیره کلیک کنید. برنامه nopCommerce مجدداً راهاندازی میشود.
پیکربندی مزرعه وب
قانون تغییر مسیر ناحیه مدیریت
از آنجایی که یک مزرعه وب چندین نمونه از یک برنامه را میزبانی میکند، باید یکی از نمونههای nopCommerce را به عنوان نمونه اصلی انتخاب کنید تا از قفل فایل جلوگیری کنید. این گره اصلی درخواستهای پنل مدیریت را پردازش میکند.
قانون باید به این شکل باشد:
<rule name="Admin Area" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^(admin(/.*)?)$|^(lib_npm/.+)$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^admin\.wf\.local$" negate="true" />
</conditions>
<action type="Rewrite" url="http://admin.wf.local/{R:0}" />
</rule>
جایی که admin.wf.local
آدرس نمونه اصلی شما است.
قوانین تعادل بار
پس از راهاندازی مزرعه وب، باید یک قانون تعادل بار در بخش Application Request Routing پیکربندی کنید. شرطی اضافه کنید که از پردازش درخواستهای مربوط به گره اصلی جلوگیری کند (در مورد ما درخواستهای ناحیه مدیریت):
<rule name="ARR_wf-local_loadbalance" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" ignoreCase="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{PATH_INFO}" pattern="^(/admin(/.*)?)$|^(/lib_npm/.+)$" negate="true" />
</conditions>
<action type="Rewrite" url="http://wf-local/{R:0}" />
</rule>
جایی که wf-local
نام مزرعه وب است.
میتوانید قوانینی که در بالا توضیح دادیم را به دو روش اضافه کنید:
- آنها را در فایل
applicationHost.config
(بخش system.webServer/rewrite/globalRules) قرار دهید. - از بخش URL Rewrite script در IIS Manager استفاده کنید.
[!توجه]
در برخی موارد، ARR در پردازش URL فایلهای جاوااسکریپت که شامل بیش از یک نماد "." هستند، مشکل دارد. به عنوان مثال، این میتواند بر فایلهای js فشردهشده که با
.min.js
پایان مییابند، تأثیر بگذارد. برای جلوگیری از خطا در پردازش چنین فایلهایی، توصیه میکنیم این درخواستها را مستقیماً به یکی از نمونههای nopCommerce مسیریابی کنید. همانطور که در مثالهای بالا مشاهده میکنید، این کار را برای کل دایرکتوریlib_npm
با مسیریابی به نمونه اصلی انجام میدهیم.
هنگامی که پیکربندی به پایان رسید، نمونههای جدید را به مزرعه وب خود اضافه کنید.
تکثیر فایل
هنگامی که شروع به پیکربندی تکثیر فایل میکنید، لطفاً مطمئن شوید که پوشههای زیر از نمونه اصلی برای پشتیبانی از تکثیر به تمام گرههای دیگر (نمونهها) تنظیم شدهاند:
- /App_Data
- /Plugins
- /Themes
- /wwwroot
[!توجه]
تمام اقداماتی که نیاز به راهاندازی مجدد برنامه nopCommerce دارند (به عنوان مثال، نصب پلاگین، بهروزرسانی تنظیمات برنامه)، نیاز به راهاندازی مجدد دستی تمام استخرهای برنامه مرتبط با مزرعه وب دارند.