در این مطلب از سری مطالب دانشنامه آذرآنلاین با معرفی وارنیش کش یا همان Varnish در خدمت شما خواهیم بود تا با این ابزار کاربردی و البته پراستفاده در دنیای وب هاستینگ بیشتر آشنا شوید.
وقتی صحبت از وب هاستینگ و میزبانی وبها مخصوصاً از نوع پربازدید آن به میان میآید ، اولین نکتهای که بنظر میرسد این است که آیا این وب سرور ، قابلیت پاسخدهی به کاربران را دارد یا خیر؟ یا اینکه با چه سرعتی به کاربران پاسخدهی میکند؟!
امروزه اکثر لینوکسیها با وب سرورهای قدرتمند Nginx و Apache آشنا هستند و نیازی نیست که در به معرفی آنها پرداخت ولی شاید اگر به عنوان یک فرد مبتدی آنها را نصب کنید ، از نوع سرویسدهی و سرعت آن رضایت نداشته باشید و تصور بر این کنید که تنظیمات آن دچار مشکل است.
اما باید خدمت عرض کنم که جدا از تنظیمات و ماژولهایی برای کمک به سرعت و سرویسدهی بیشتر ، عموماً این سرویسها همراه با یک سرویس کشینگ برای سرویسدهی بهینه همراه میشوند.
سرویس کشینگ ، قابلیتی به سرور اضافه میکند که تمام درخواستها به سمت وب سرور ارسال نشود و به معنای ساده ، یک کمک دست وب سرور است.
در سیستمهای کشینگ به طور معمول ، صفحات استاتیک و کدهای پایدار و در کل تمامی مواردی که داینامیک و درحال تغییر نیستند را در حافظه خود نگه داشته و هنگام مراجعه کاربران به وب سایت ، به جای دریافت وب و محتوای آن از وب سرور ، این سرویس کش است که پاسخ کاربر را به سرعت جواب میدهد.
امروزه سرویسهای متنوع کشینگ زیادی هستند که میتوان از آن بهره برد که یکی از محبوبترین آنها Varnish میباشد و ما قصد داریم در این مطلب به معرفی وارنیش کش پرداخته تا شما بیش از پیش با این سرویس قدرتمند کشینگ آشنا شوید.
معرفی وارنیش کش
وارنیش ( Varnish ) یک شتابدهنده HTTP است که به صورت تخصصی بر روی HTTP تمرکز داشته و به عنوان یک سرویس کشینگ در جلوی وب سرورهای آپاچی و یا Nginx قرار میگیرد. وارنیش به طور کلی برای وبسرورهایی طراحی شده است که ترافیک بسیار بالایی داشته و به طور مداوم در حال سرویسدهی هستند. در حال حاضر وبسایتهای بزرگی از این سیستم استفاده کرده که در بین آنها میتوان به ویکیپدیا و بسیاری از روزنامههای آنلاین مانند The New York Times ، The Guardian ، Corriere della sera و همچنین بسیاری از شبکههای معروف اجتماعی مانند Facebook ، Twitter ، Reddit ، Vimeo و ... نام برد.
از دیگر مزایای مهمی که استفاده از وارنیش برای وب سرور شما به ارمغان خواهد آورد ، افزایش امنیت وب سرور شما خواهد بود و این امنیت ناشی از قرار گرفتن وب سرور آپاچی و یا Nginx پشت وارنیش است و ارتباط مستقیمی با بیرون نخواهد داشت.
تاریخچه وارنیش کش
وارنیش در ابتدا یک ایده بود که توسط یک روزنامه نروژی استفاده شد و پس از آن Paul Hening Kamp که عموماً به عنوان یک دولوپر هسته FreeBSD شناخته میشود ، شروع به توسعه وارنیش کرد. ساختار امروزی وارنیش بسیار متفاوت از زمانی است که در ابتدا معرفی شد و وی ساختار سرویسدهی و همچنین نوع سرویسدهی را بر روی وارنیش تغییر داد.
این سرویس کشینگ در ابتدا در سال 2006 با نسخه 1 معرفی شد و بعدها با نسخه های 2 و 3 و در نهایت در سال 2016 با نسخه پنج در دسترس قرار گرفت.
نکته جالب توجه نسبت به این ابزار این است که وارنیش از ابتدا تا اکنون زیر نظر BSD License فعالیت داشته و به صورت رایگان در اختیار تمام کاربران قرار دارد و شما نیز میتوانید با نصب آن بر روی سرور خود ، براحتی از وارنیش استفاده کنید.
ساختار عملکرد وارنیش کش
وارنیش به طور کلی پس از نصب همانند یک Proxy Server شروع به فعالیت کرده و جلوی وب سرور آپاچی یا Nginx قرار میگیرد و تمامی درخواستها به سمت سرور ، در ابتدا توسط وارنیش آنالیز شده و پاسخ مناسب به کاربر ارسال خواهد شد.
به طور کلی اگر از درخواست کاربر قبلاً در وارنیش کش شده باشد ، بدون برقراری ارتباط با وب سرور ، خود وارنیش پاسخ کاربر را ارسال خواهد کرد و در صورتی که درخواست کاربر در وارنیش وجود نداشته باشد ، وارنیش از وب سرور اطلاعات را دریافت کرده و پس از نسخهبرداری در حافظه کش ، آن را برای کاربر ارسال میکند.
این نوع عملکرد ، در سرور باعث کاهش مصرف رم و پردازنده شده و همچنین با سرعت بسیار بالاتری به درخواستها پاسخدهی خواهد شد.
در تصویر زیر شما نمایی از یک وب سرور معمول را بدون وارنیش مشاهده میکنید.
همانطور که در تصویر مشخص است ، تمامی درخواستها به سمت آپاچی رفته و آپاچی تک تک درخواستها را اجرا کرده و با سرویس پایگاه داده و PHP مداوماً در ارتباط خواهد بود.
حال در تصویر زیر شما نمایی از یک وب سرور معمول همراه با وارنیش کش را مشاهده مینمایید.
همانطور که مشخص است ، درخواستها به سمت وارنیش آمده و این سرویس کشینگ در ابتدا به حافظه خود مراجعه خواهد کرد تا بتواند پاسخ کاربر را بدهد ، در صورتی که درخواست کاربر با پاسخهای موجود در حافظه مطابقت نداشته باشد ، از وب سرور آپاچی پاسخ ارسال خواهد شد.
به همین ترتیب ، سرعت سرویسدهی افزایش یافته و آپاچی نیازی به اجرای کدهای یک وب سایت و خواندن محتوا از MySQL نخواهد داشت و بر همین اساس ، عملکرد آپاچی ، MySQL و PHP کاهش پیدا کرده و مقدار مصرف رم و پردازنده سرور بسیار کاهش پیدا خواهد کرد.
نکات مهم در هنگام راهاندازی وارنیش کش
از مزایا و روند عملکرد وارنیش در مطلب معرفی وارنیش کش به طور مفصل توضیح داده شد و حال چند نکته مهم در هنگام استفاده از این سرویس وجود دارد که باید قبل از راهاندازی و استفاده از آن بدانید.
نکته 1 : سرویس وارنیش به صورت پیشفرض و پس از نصب ، شروع به سرویسدهی خواهد کرد اما تنظیمات پیشفرض آن برای وبسایتهای خبری و یا سایتهایی که مطالب را لحظه به لحظه منتشر میکنند ، مناسب نبوده و باعث میشود ، کاربران مطالب قبلی شما را مشاهده کرده و تا هنگام حذف مجدد کش ، مطالب جدید نمایش داده نشود.
نکته 2 : وارنیش کش بسیار انعطافپذیر بوده و قابلیت آن را خواهد داشت تا نسبت به سایت شما به حدی بهینهسازی شود که فوقالعاده پر سرعت عمل کند.
سخن پایانی
وارنیش کش در مجموع یک سرویس کشینگ و شتابدهنده فوقالعادهای برای HTTP است و بر روی FTP ، SMTP و سایر سرویسهای یک وب سرور تأثیری نمیگذارد و همچنین قابلیت تنظیم و انعطافپذیری بالایی داشته و با وب سرورهای آپاچی و Nginx به خوبی کار میکند.
در مطالب بعدی نیز به نصب وارنیش بر روی LAMP و LEMP خواهیم پرداخت تا بیش از پیش با آن آشنا شوید.
امیدواریم در پایان از مطلب معرفی وارنیش کش استفاده لازم را برده باشید.
کاربر گرامی شما میتوانید سؤالات مربوط به این آموزش را در بخش کامنتها عنوان کرده و در همین قسمت پاسخ خود را دریافت کنید.