به طور خلاصه، Varnish Cache میتواند به عنوان یک واسطه بین سرور و کاربران عمل کند، درخواست های کاربران را دریافت کرده و به جای ارسال درخواست به سرور، صفحه وب مربوطه را از حافظه کش به کاربر برگرداند.وارنیش کش ( Varnish Cache ) نوعی سیستم کش است که برای شتابدهی به صفحات وبسایتها مورد استفاده قرار می گیرد. این سیستم، درخواستهای مربوط به وبسایت را از مرورگرهای کاربران دریافت کرده و آنها را برای پردازش به سرورهای اصلی یا لبه می فرستد؛ سپس پاسخ درخواست را در حافظه کش نگهداری و با سرعت بالاتر به کاربران تحویل می دهد. این روش موجب بهبود عملکرد و سرعت بارگذاری صفحات وب میشود.در صورتی که درخواستی مشابه به وبسایت ارسال شود، وارنیش کش درخواست جدید را با درخواست قبلی مقایسه کرده و در صورت تشابه، نتیجه پردازش را از حافظه کش خود به کاربر برمیگرداند.از دیگر ویژگیهای وارنیش کش میتوان به مدیریت درخواست های کاربران وبسایت اشاره کرد. در صورتی که برای کاربری به نمایش اطلاعات خاصی از وبسایت نیاز باشد، میتوان با استفاده از وارنیش کش، اطلاعات مربوط به کاربر را در حافظه کش ذخیره کرده و هر زمان که درخواست جدیدی از طرف وی ارسال شد، از پاسخ به سرعت از حافظه کش به کاربر ارسال شود.در مورد استفاده از وارنیش کش باید به این نکته توجه داشت که این سیستم به صورت پیشفرض برای محتوایی که زمان انقضا داشته باشد، موثر نیست. در این صورت باید با استفاده از TTL در وارنیش کش، این مشکل را برطرف کرد.همچنین Varnish Cache میتواند از نظر امنیتی نیز برای وبسایت ها مفید باشد، زیرا به مهاجمین فرصت کمتری برای حمله به زیرساخت سرور اصلی خواهد داد و از سایت شما در برابر حملات DDoS محافظت میکند.
استفاده و پیکربندی وارنیش کش
Varnish Cache در سمت سرور قرار داشته و به عنوان یک ماژول نرم افزاری در میان لایه های سرور مستقر میشود. این نرمافزار با استفاده از زبان C طراحی شده و قابلیت نصب بر روی سیستمعاملهای مختلف را نیز دارد. جهت فعالسازی کش وارنیش برای وبسایت، باید آن را به عنوان لایه ای میان سرور و مرورگر قرار دهیم. در صورتی که محتویات درخواست در کش وارنیش موجود باشد، وارنیش به صورت مستقیم به مرورگر پاسخ میدهد، در غیر این صورت، درخواست به سرور اصلی ارسال شده و پس از دریافت پاسخ، در کش وارنیش ذخیره میشود. با این کار، زمان لود صفحه کاهش پیدا کرده و بار سرور نیز کمتر میشود.برای نصب و تنظیم Varnish Cache برای وبسایت، مراحل زیر را میتوان دنبال کرد:
1-ابتدا نرمافزار Varnish را نصب کنید.
- برای نصب Varnish در سیستمعامل لینوکس میتوانید از مخازن نرمافزاری موجود در سیستمعامل استفاده کنید.
- برای نصب در ویندوز و مک نیز نرمافزارهایی در دسترس است که با استفاده از آنها میتوانید Varnish را نصب کنید.
2-پس از نصب، فایل تنظیمات Varnish را در مسیر /etc/varnish/ یا /usr/local/etc/varnish/ (بسته به سیستمعامل و نسخه Varnish) پیدا کرده و باز کنید.
3-در این فایلِ تنظیمات، شماره پورت Apache یا Nginx را که وبسرور شما در آن کار میکند، تعیین کنید. برای مثال، اگر وبسرور شما روی پورت 80 در حال اجراست، شماره پورت را به 8080 تغییر دهید.
4-سپس مقداری از حافظهی سیستم را به Varnish Cache اختصاص دهید. این مقدار باید بیشتر از حجم پاسخهای وبسرور باشد. معمولاً ۲۰ تا ۳۰ درصد از حجم کل حافظهی سیستم به عنوان حافظهی کش در نظر گرفته میشود.
5-در نهایت، Varnish Cache را با اجرای دستور زیر راهاندازی کنید:
sudo service varnish start
6-حالا میتوانید وبسرور خود را به Varnish Cache متصل کنید تا پاسخهای آن به عنوان کش در Varnish Cache ذخیره شود. برای این کار باید شماره پورت Varnish را به عنوان پورت وبسرور در فایل تنظیمات وبسرور خود تعیین کنید.همچنین میتوانیم تنظیمات مختلفی را برای وارنیش در نظر بگیریم. برای مثال، میتوانیم زمانهای مختلفی را برای حذف کشها در نظر گرفته و یا محدودیتهای مختلفی را برای کشهای مختلف در نظر بگیریم. همچنین، با استفاده از تکنیکهایی مانند purge، میتوانیم کشهای مورد نظر را به صورت دستی حذف کنیم تا بتوانیم نسخه جدید صفحه را تحویل دهیم.
کش وارنیش در CDN ها
سیستمهای CDN هم معمولاً از کش وارنیش استفاده میکنند تا محتوای وب را سریعتر و از نزدیکترین نقطه به کاربران ارائه دهند. به این ترتیب، درخواست کاربر برای محتوای استاتیک به سرور اصلی ارسال نشده و به جای آن، محتوا از سرورهای کش CDN توزیع میشود که در نتیجه تاخیر در بارگذاری وبسایت به حداقل رسیده و با سرعت بالاتری به کاربران پاسخ داده می شود.در اکثر سرویس های CDN، برای استفاده از کش از نرمافزار Varnish استفاده میشود. Varnish با استفاده از ساختار Cache سریع و کارآمد خود، محتوای وبسایت را در حافظهی پنهان ذخیره و به درخواستهای بعدی کاربران، با کمک نسخه های کش پاسخ می دهد. بدین ترتیب، بار ترافیکی سمت سرور اصلی به حداقل رسیده و در هزینه های زیرساختی نیز صرفه جویی می شود.
کدهای کاربردی برای مدیریت کش وارنیش
چند کد مفید برای Varnish Cache در زیر لیست شده اند:
- vcl_recv: این کد در هنگام دریافت یک درخواست اجرا میشود. با استفاده از این کد می توانید تغییراتی در درخواستهای دریافتی اعمال کنید.
- vcl_backend_response: این کد در هنگام دریافت پاسخ از بکاند اجرا میشود. با استفاده از آن میتوانید پاسخهای دریافتی را تغییر داده و یا آنها را فیلتر کنید.
- vcl_deliver: این کد در هنگام ارسال پاسخ به کاربر اجرا میشود. با استفاده از آن میتوانید پاسخهایی را تحویل دهید که بهصورت دستی تغییر کرده اند.
- vcl_hit: این کد هنگامی اجرا میشود که یک درخواست با کلید cache هیت شود. با استفاده از این کد میتوانید عملیات قبل از ارسال پاسخ را تغییر دهید.
- vcl_miss: این کد هنگامی اجرا میشود که یک درخواست با کلید cache میس شود.
- vcl_pass: این کد زمانی اجرا میشود که یک درخواست کاملاً به بکاند فرستاده شود. با استفاده از این کد نیز میتوانید عملیات قبل از ارسال پاسخ را ویرایش کنید.
- vcl_pipe: این کد زمانی اجرا میشود که یک درخواست به صورت pipeline ارسال شود.
نصب Varnish Cache در لایت اسپید
برای نصب و راه اندازی Varnish در محیط LiteSpeed میتوانید از دستورات زیر استفاده کنید:
- نصب Varnish:
از طریق دستور زیر Varnish را نصب کنید:
yum install varnish
- تنظیمات در LiteSpeed:
وارد محیط LiteSpeed شوید.
از منوی Configuration > Server > External App در بخش Varnish بر روی دکمه Add کلیک کنید.
سپس مقادیر زیر را وارد کنید:
- Name: Varnish
- Address: localhost
- Port: 80
- Load Balancing: No
- Max Connections: 1000
- Environment: production
- Initial Request Timeout (secs): 60
- Retry Timeout (secs): 0
سپس بر روی دکمه Save کلیک کنید تا تغییرات ذخیره شود.
بر روی Configuration > Server > General رفته و در بخش Default پورت را به 8088 تغییر دهید.
- تغییرات در Varnish:
از طریق دستور زیر فایل پیکربندی Varnish را باز کنید:
nano /etc/varnish/default.vcl
سپس فایل را با مقادیر زیر تغییر دهید:
backend default {
.host = "127.0.0.1";
.port = "8088";
}
سپس فایل را ذخیره و بسته و سرویس Varnish را مجدد راهاندازی کنید:
systemctl restart varnish
با انجام این تغییرات، Varnish در محیط LiteSpeed نصب و راهاندازی شده و میتوانید از آن برای افزایش سرعت و بهینهسازی وبسایت خود استفاده کنید.
نحوه فعالسازی Varnish Cache در لینوکس
برای نصب Varnish Cache در لینوکس، میتوانید مراحل زیر را دنبال کنید:
- نصب Varnish Cache:
برای نصب Varnish Cache در لینوکس، میتوانید از دستور زیر استفاده کنید:
sudo apt-get install varnish
- تنظیم فایل پیکربندی Varnish:
برای تنظیم فایل پیکربندی Varnish، باید ابتدا فایل پیکربندی پیشفرض را حذف کرده و سپس فایل پیکربندی جدیدی ایجاد کنید. برای حذف فایل پیکربندی پیشفرض، از دستور زیر استفاده کنید:
sudo rm /etc/varnish/default.vcl
سپس فایل پیکربندی جدید را ایجاد و ویرایش کنید:
sudo nano /etc/varnish/mysite.vcl
در این فایل، میتوانید تنظیمات مربوط به Varnish Cache خود را تعیین کنید.
- تنظیم Varnish:
برای تنظیم Varnish، باید فایل Varnish را ویرایش کنید. برای این کار، فایل زیر را باز کنید:
sudo nano /etc/default/varnish
- راهاندازی مجدد سرویس Varnish:
پس از انجام تنظیمات لازم، باید سرویس Varnish را مجدداً راهاندازی کنید. برای این کار از دستور زیر استفاده کنید:
sudo systemctl restart varnish
جمع بندی
Varnish Cache یکی از محبوبترین نرمافزارهای کش در دنیای وب است که برای افزایش سرعت سایتها و بهبود تجربه کاربری مورد استفاده قرار میگیرد. با استفاده از این نرمافزار، صفحات وب سریعتر بارگذاری شده و زمان لود کاهش مییابد. Varnish Cache برای برخی از سایتهای بزرگ مانند ویکیپدیا و فیسبوک یکی از ابزارهای پایهای محسوب می شود.استفاده از Varnish Cache در سایتهایی با ترافیک بالا که حجم داده زیادی دارند نیز بسیار موثر است و میتواند در سرعت بارگذاری صفحات بهبود چشمگیری داشته باشد.برای استفاده از Varnish Cache، میتوانید آن را روی سرور خود نصب کرده و تنظیمات لازم را اعمال کنید. در برخی موارد ممکن است نیاز باشد از پلاگینها یا افزونههایی که برای مدیریت Varnish Cache طراحی شدهاند استفاده کنید. همچنین برخی از وبسرورهایی مانند Apache و Nginx از Varnish Cache به عنوان یکی از ماژولهای خود پشتیبانی میکنند.
پیشنهاد میکنم مقاله: جفت سازی یا Peering در شبکه را نیز مطالعه بفرمایید.
ارائه دهنده خدمات زیرساخت یکپارچه ابری