شما برای مطالعه این مقاله فقط 7 دقیقه وقت نیاز دارید

Varnish-cashe-server

نصب کش سرور وارنیش (Varnish cache) با آپاچی روی اوبونتو

4/5 - (1 امتیاز)

امروزه موتورهای جستجو، رضایت و فیدبک مثبت کاربران را در اولویت قرار می دهند، پس اگر شما هم مثل اکثر مدیران کسب و کار به سرعت بارگذاری صفحات وبسایت خود اهمیت می دهید و نمی خواهید به خاطر چند ثانیه تاخیر، رضایت بازدیدکنندگان و موتورهای جستجو را از دست دهید، نصب کش سرور وارنیش را در اولویت کار خود قرار دهید.

Varnish cache یک شتاب دهنده HTTP رایگان و متن باز است که بین کلاینت و وب سرور آپاچی قرار می گیرد تا با کنترل بهتر ترافیک به افزایش سرعت و عملکرد وبسایت کمک کند.

دیگر وقت آن است که طرز کار این کش سرور و نحوه نصب آن با آپاچی روی اوبونتو را بررسی کنیم تا با شروع استفاده از این سرویس، شرایط را برای رسیدن به رتبه های بالاتر موتورهای جستجو فراهم کنید:

کش سرور وارنیش چیست؟

وقتی روی یکی از صفحات نتایج جستجو کلیک می کنید، یک سری مراحل طی می شود تا صفحه موردنظر برای شما باز شود. تمام این مراحل پیچیدگی های خاص خود را دارند ولی چون ما در این آموزش، مبحث کش و ارتقا سرعت بارگذاری را مدنظر داده ایم، عملکرد سیستم کش را بررسی می کنیم.

سیستم کش، داده ها را در یک فضای ذخیره سازی موقت نگهداری می کند تا در صورت نیاز از آنها استفاده کند و سرعت پاسخ دهی به درخواست ها بالا برود. خود این عمل کش هم به شکل های مختلفی انجام می شود و کش پراکسی معکوس، یکی از آنهاست.

به طور کلی، “پراکسی” سروری است که بین اینترنت و کاربر قرار می گیرد و بر اساس یک سری قوانین، درخواست های ارسال شده توسط یک کاربر به صفحه موردنظر را فیلتر می کند.

اما منظور از پراکسی معکوس چیست؟ یک پروکسی معکوس، سروری است که بین اینترنت و وب سرور قرار می گیرد و به عنوان یک نقطه ورود برای همه درخواست های ارسالی به وبسایت عمل می کند. پس این پراکسی هم تمام درخواست ها را قبل از رسیدن به وبسایت فیلتر می کند.

کش سرور وارنیش یک پراکسی معکوس است که یک کپی از صفحه را در حافظه ایجاد می کند تا موقع بازدید مجدد، به جای وب سرور به درخواست هایی که یک کپی از آنها را دارد، پاسخ دهد. با نصب کش سرور وارنیش به عملکرد دلخواه خود خواهید رسید چون این کش سرور تضمین می کند که صفحات وبسایت ها نیازی به بارگذاری مجدد ندارند.

از مهم ترین مزایای استفاده از این کش سرور می توان به موارد زیر اشاره کرد:

  • ارتقا سرعت و عمکلرد وبسایت
  • افزایش امنیت وبسایت
  • افزایش مقیاس پذیری برای حفظ سازگاری وبسایت با هر میزان تقاضا
  • بهبود تجربه کاربری و سئو
  • صرفه جویی در هزینه های مربوط به زیرساخت سرور
  • ارائه محتوا حتی در صورت از کار افتادن سرور

پس اگر به سرعت، عملکرد و مقیاس پذیری وبسایت خود اهمیت می دهید و دوست دارید در هزینه ها هم صرفه جویی کنید، چه ایده ای بهتر از اینکه ابتدا با خرید سرور مجازی لینوکس، هزینه های تهیه یک سرور عالی برای کسب و کار خود را به حداقل برسانید و بعد با نصب کش سرور وارنیش، کاری کنید که کاربران شما در سریع ترین حالت ممکن، شیفته کیفیت محصولات/خدمات شما شوند.

مراحل نصب کش وارنیش با آپاچی در اوبونتو

قبل از هر کاری، اول باید نسخه مناسبی از وارنیش را انتخاب کنید. هر سال، یک نسخه جدید از این نرم افزار منتشر می شود که بهتر است یک نسخه Stable و بدون باگ را انتخاب کنید تا بعداً موقع استفاده از آن به مشکلی برنخورید. توصیه ما نسخه Varnish Cache 6.0 LTS است.

دیگر وقت آن است که مراحل نصب این کش سرور را شروع کنیم:

  1. نصب آپاچی

کار خود را با آپدیت پکیج های سیستم شروع می کنیم که برای این کار باید به عنوان کاربر روت وارد سرور شده باشید یا اینکه از امتیازات sudo استفاده کنید:

sudo apt-get update

با توجه به اینکه قرار است کش سرور وارنیش در مقابل وب سرور آپاچی قرار بگیرد، پس ابتدا با استفاده از دستور زیر، وب سرور آپاچی را نصب کنید:

sudo apt install apache2

برای اینکه هر بار با بوت شدن سیستم، وب سرور آپاچی هم به طور خودکار اجرا شود، دستورات زیر را اجرا کنید:

systemctl start apache2
systemctl enable apache2
  1. پیکربندی وب سرور آپاچی

آپاچی هم مثل هر وب سرور دیگری به پورت 80 گوش می دهد و با توجه به این که کش سرور وارنیش هم به عنوان یک واسط، درخواست های HTTP را به آپاچی ارسال می کند، پس باید پورت آپاچی را مجدداً پیکربندی کنید.

ابتدا باید کاری کنید که آپاچی به پورت 8080 گوش دهد و بعداً که وارنیش را نصب کردید، پورت آن را هم به 80 تغییر دهید تا نقش خود را به عنوان واسط و نقطه ورود درخواست ها انجام دهد.

پس، با استفاده از دستور زیر فایل ports.conf آپاچی را باز کنید:

sudo nano /etc/apache2/ports.conf

بعد شماره پورت Listen را به 8080 تغییر دهید:

Listen 8080

تغییر پورت آپاچی برای نصب کش سرور وارنیش

سپس فایل را ذخیره کرده و آن را ببندید.

کلیک کنید  حل مشکل connection is not secure در کروم، فایرفاکس و اندروید

Virtual Host هم باید روی پورت 8080 تنظیم شود. پس دستور زیر را اجرا کنید:

sudo nano /etc/apache2/sites-available/default

بعد که فایل باز شد، خط VirtualHost را به صورت زیر تغییر دهید:

<VirtualHost 127.0.0.1:8080>

بعد اینکه شماره پورت را تغییر دادید، فایل را ذخیره کرده و آن را ببندید.

البته، اگر می خواهید این تغییرات را بدون باز کردن فایل ها و با استفاده از دو دستور ساده اعمال کنید، می توانید به جای مراحل بالا، دو دستور زیر را اجرا کنید:

sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*

بعد تغییر پورت، بهتر است یک بار دیگر آپاچی را تست کنید تا مطمئن شوید که مشکلی وجود ندارد:

 

apachectl configtest

آپاچی را ری استارت کنید:

systemctl restart apache2

البته، اگر می خواهید قبل از نصب کش سرور وارنیش مطمئن شوید که آپاچی به پورت 8080 گوش می دهد یا نه، دستور زیر را هم اجرا کنید:

netstat –plntu

اگر خروجی به صورت زیر است، پس تا الآن همه چیز خوب پیش رفته است:

بررسی شبکه با netstat

  1. نصب کش سرور وارنیش

برای نصب یک نسخه پایدار و رسمی Varnish Cache، اول باید آن را به سیستم خود اضافه کنید چون مخزن پیش فرض اوبونتو دارای نسخه های قدیمی تر است که از پشتیبانی زیادی هم برخوردار نیستند.

پس با اجرای دستور زیر، dependency های لازم را به سیستم خود اضافه کنید:

sudo apt install curl gnupg apt-transport-https

بعد، کلید GPG مربوط به این پکیج را نصب کنید:

curl -L https://packagecloud.io/varnishcache/varnish60lts/gpgkey | sudo apt-key add –

دیگر وقت آن است که این repository را به سیستم خود اضافه کنید:

echo "deb https://packagecloud.io/varnishcache/varnish60lts/ubuntu/ focal main" | sudo tee -a /etc/apt/sources.list.d/varnish60lts.list

برای این که موقع اجرای دستور نصب، این نسخه جدیدتر اولویت بالاتری نسبت به نسخه های قدیمی داشته باشد و برای نصب انتخاب شود، فایل زیر را باز کنید:

sudo nano /etc/apt/preferences.d/varnish

محتوای متنی زیر را به این فایل اضافه کنید:

Package: varnish 

Pin: origin packagecloud.io

 Pin-Priority: 900

بعد اینکه این فایل را ذخیره کردید و آن را بستید. سیستم را آپدیت کنید:

sudo apt update

الان دیگر نوبت به نصب کش سرور وارنیش می رسد:

sudo apt install varnish

بعد از تکمیل پروسه نصب، با اجرای دستورات زیر سرویس وارنیش را فعال کنید تا هر بار که سیستم را ری استارت کردید، این سرویس هم به طور خودکار اجرا شود:

systemctl start varnish

systemctl enable varnish
  1. پیکربندی Varnish Cache

این کش سرور به طور پیش فرض از پورت 6081 استفاده می کند و اینجاست که باید این پورت را به پورت 80 تغییر دهید تا وارنیش به عنوان یک پراکسی معکوس برای آپاچی عمل کند و درخواست ها را قبل از ارسال به پورت 8080 وب سرور مدیریت کند.

فایل پیکربندی وارنیش را باز کنید:

sudo nano /etc/varnish/default.vcl

بخش Backend را به صورت زیر تغییر دهید. همانطور که می دانید در این آموزش، بک اند وارنیش همان وب سرور آپاچی است:

اطلاعات بک اند برای کش سرور وارنیش

فایل را ذخیره کرده و آن را ببندید.

بعد نوبت به تغییر شماره پورت وارنیش می رسد. پس فایل زیر را باز کنید:

nano /etc/default/varnish

شماره پورت را از 6081 به 80 تغییر دهید:

تغییر شماره پورت

فایل را ذخیره کرده و آن را ببندید.

بعد باید فایل سرویس وارنیش را باز کنید و این تغییر پورت را در آنجا هم اعمال کنید:

nano /lib/systemd/system/varnish.service

با مراجعه به خط ExecStart، شماره پورت را از 6081 به 80 تغییر دهید:

ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m

فایل را ذخیره کرده و آن را ببندید.

برای اینکه این تغییرات ثبت شوند، systemd را مجدداً بارگذاری کنید:

sudo systemctl daemon-reload

وارنیش را ری استارت کنید:

sudo systemctl restart varnish

در آخر، با اجرای دستور زیر مطمئن شوید که وارنیش به پورت 80 گوش می دهد:

sudo netstat -ltnp | grep ':80 '

بررسی چورت 80

تست کش سرور وارنیش

برای اطمینان از اینکه همه چیز طبق برنامه پیش رفته است یا نه، از دستور url برای مشاهده هدر های HTTP استفاده کنید:

url -I http://your-server-ip

هدرهای http

اگر همه چیز خوب پیش رفته باشد، Varnish هم در هدر HTTP جای خواهد داشت:

یا برای مشاهده صفحه پیش فرض آپاچی از دستور زیر استفاده کنید:

curl -I http://your-server-ip

صفحه آپاچی

اگر می خواهید لاگ های وارنیش را هم بررسی کنید، می توانید از دستور زیر استفاده کنید:

sudo varnishtop

خروجی این دستور به صورت زیر خواهد بود:

لاگ های وارنیش

بله. عملیات نصب کش سرور وارنیش با موفقیت انجام شد و زمینه برای هندل کردن سریع تر درخواست های HTTP فراهم شده است.

کلام آخر

نصب کش سرور وارنیش یکی از بهترین راهکارهای ارتقا سرعت و عملکرد وبسایت است. برای اینکه پروسه نصب این کش سرور را با موفقیت پشت سر بگذارید، کافیست مراحلی که در این مقاله بررسی کرده ایم را به ترتیب اجرا کنید. منتها به این نکته مهم توجه داشته باشید که این آموزش برای نصب کش سرور وارنیش است و اگر دوست دارید این کش سرور را با گزینه های پیشرفته تری پیکربندی کنید، می توانید از سایت رسمی و راهنماهای کاربران وارنیش کمک بگیرید.

از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.

سوالات متداول:

بهتر است نسخه جدید و پایداری که از پشتیبانی کافی برخوردار است را انتخاب کنید که نسخه Varnish 6.0 LTS یکی از نسخه های مناسب برای شماست.

مطالب مشابهی که شاید علاقمند باشید

من زهرا پیرجانی دانشجوی رشته نرم افزار هستم. علاقه ای که به یادگیری مطالب جدید دارم باعث شد که انگیزم برای فعالیت در حوزه تولیدمحتوا بیشتر شود. تمام تلاشم این است که با درک کامل موضوع، محتوایی ساده و کامل تهیه کنم که برای همه علاقمندان مفید و کاربردی باشد. یادگیری مطالب جدید و آموزش اونها به بقیه، بهترین کاری هست که می توانم برای رشد خودم و همچنین کمک به رشد علاقمندان به مباحث مورنظر انجام بدم.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید