Varnish Cache یک موتور قدرتمند HTTP متن باز و پروکسی معکوس است که برای وب سایت های پویا با بارگذاری بالا و همچنین برای API ها طراحی شده است.
Varnish Cache بر خلاف سایر شتاب دهنده های وب مثل Squid به عنوان یک کش از سمت کلاینت ایجاد شده است، همچنین برخلاف سایر سرور های پروکسی که از FTP و SMTP پشتیبانی می کنند، این سرور با تمرکز بر HTTP رشد کرده است.
به طور معمول Varnish Cache 7 پشت یک وب سایت قرار می گیرد و سرعت وب را تقریباً بین 300 تا 1000 برابر می کند که شتاب دهنده وب کاربردی نامیده می شود.
این امر با ذخیره کردن وب سایت های در خواستی در حافظه و سرویس دهی به آن ها، در صورت تقاضا انجام می شود، همچنین این فرآیند بدون ایجاد اطلاعات مشابه به دست می آید.
با پیکربندی Varnish Cache 7 در اوبونتو، می توانیم سرعت بارگذاری وب سایت های خود را بدون هدایت درخواست های سرور HTTP به جلو افزایش دهیم.
این فرآیند به سرعت بخشیدن زمان بارگیری و جلوگیری از تصادفات مکرر کمک می کند، در ادامه این مقاله ویژگی های Varnish Cache را به صورت کامل بررسی می کنیم و نحوه نصب آن را به صورت دقیق توضیح خواهیم داد.
فهرست مطالب
ویژگی های Varnish Cache 7
- داشتن دایرکتورهایی با ویژگی DNS، به صورت تصادفی، هش و کلاینت هایی بر پایه IP
- داشتن HTTP Pass & Fetch
- پشتیبانی از پلاگین ها به کمک ماژول های Varnish یا VMOD
- پشتیبانی از Edge Side که شامل اتصال قطعات فشرده شده ESI می باشد
- کمک به فشرده سازی Gzip و داشتن قابلیت خارج کردن Gzip از حالت فشرده
- داشتن قابلیت varnish خصوصی CDN
- پشتیبانی از ذخیره سازی مداوم، بدون اخراج LRU
- Varnish API و افزایش شتاب و سرعت وب
پیش نیاز های نصب 7 Varnish Cache
- نصب اوبونتو 22.04
- داشتن حساب کاربری با دسترسی SUDO
- به روز رسانی بسته های کلاینت سرور به آخرین نسخه
نحوه نصب و پیکربندی 7 Varnish Cache در توزیع اوبونتو
پس از توضیح مختصر در مورد Varnish Cache و ویژگی های آن، اکنون می خواهیم نحوه نصب Varnish Cache بر روی اوبونتو را گام به گام با هم بررسی کنیم.
بسته های کلاینت را با استفاده از دستور زیر به روز رسانی کنید:
sudo apt update && sudo apt -y full-upgrade
در صورت نیاز سیستم را با استفاده از روش زیر مجدداً راه اندازی می کنیم:
[ -f /var/run/reboot-required ] && sudo reboot -f
مراحل نصب 7 Varnish Cache در اوبونتو
برای انجام نصب Varnish Cache در سیستم Ubuntu مراحل زیر را به درستی پیش ببرید:
مرحله 1: ثبت مخزن Varnish Cache در اوبونتو 22.04
برای شروع نصب ابتدا از ثبت مخزن Varnish Cache شروع می کنیم، در غیر این صورت ممکن است همه بسته های مورد نیاز شما نصب نشوند، پس برای جلوگیری از این کار، وابستگی های بسته مورد نیاز را با استفاده از دستور زیر نصب می کنیم:
sudo apt install debian-archive-keyring curl gnupg apt-transport-https -y
پس از نصب بسته ها، امضای کلید GPG را با استفاده از دستور زیر وارد می کنیم:
curl -fsSL https://packagecloud.io/varnishcache/varnish70/gpgkey|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/varnish.gpg
حال در این مرحله مخزن Varnish Cache را با استفاده از دستورات زیر بر روی توزیع اوبونتو سرورمان، اضافه می کنیم.
این مرحله مخصوص افزودن مخزن Varnish Cache 7 بر روی اوبونتو 22.04 است، قبل از انتشار مخزن رسمی برای اوبونتو 22.04 باید از مخزن 20.04 استفاده کنیم:
sudo tee /etc/apt/sources.list.d/varnishcache_varnish70.list > /dev/null <<-EOF deb https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main deb-src https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main
پس از اضافه شدن مخزن Varnish Cache بر روی اوبونتو، اکنون فهرست بسته ی خود را با استفاده از دستور زیر به روز رسانی می کنیم:
sudo apt update
مرحله 2: نصب مخزن Varnish Cache بر روی اوبونتو 22.04
پس از اضافه شدن مخزن، Varnish Cache 7 را با استفاده از دستور زیر نصب می کنیم:
sudo apt install varnish
دستور درخت وابستگی (Dependency Tree) به صورت زیر است:
Reading state information... Done The following additional packages will be installed: binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-9 gcc gcc-9 gcc-9-base libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-9-dev libgomp1 libisl22 libitm1 libjemalloc2 liblsan0 libmpc3 libquadmath0 libtsan0 libubsan1 linux-libc-dev manpages-dev Suggested packages: binutils-doc cpp-doc gcc-9-locales gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc gcc-9-multilib gcc-9-doc glibc-doc varnish-dev The following NEW packages will be installed: binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-9 gcc gcc-9 gcc-9-base libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-9-dev libgomp1 libisl22 libitm1 libjemalloc2 liblsan0 libmpc3 libquadmath0 libtsan0 libubsan1 linux-libc-dev manpages-dev varnish 0 upgraded, 30 newly installed, 0 to remove and 73 not upgraded. Need to get 35.5 MB of archives. After this operation, 154 MB of additional disk space will be used. Do you want to continue? [Y/n]
مرحله 3: ایجاد کردن فایل سرویس Systemd برای Varnish Cache 7
برای اینکه بتوانیم Varnish Cache 7 را مانند سایر سرویس ها مدیریت کنیم، فایل Systemd را با استفاده از دستور زیر تنظیم می کنیم:
sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/ cat /etc/systemd/system/varnish.service
فایل سرویس باید به صورت زیر ظاهر شود:
[Unit] Description=Varnish Cache, a high-performance HTTP accelerator After=network-online.target nss-lookup.target
[Service] Type=forking KillMode=process
Maximum number of open files (for ulimit -n) LimitNOFILE=131072
Locked shared memory - should be enough to lock the shared memory log (varnishd -l argument) Default log size is 80MB vsl + 1M vsm + header -> 82MB unit is bytes LimitMEMLOCK=85983232
Enable this to avoid "fork failed" on reload. TasksMax=infinity
Maximum size of the core file. LimitCORE=infinity
ExecStart=/usr/sbin/varnishd \ -a :6081 \ -a localhost:8443,PROXY \ -p feature=+http2 \ -f /etc/varnish/default.vcl \ -s malloc, 256m ExecReload=/usr/sbin/varnishreload
[Install] WantedBy=multi-user.target
مرحله 4: پیکربندی پورت Listening و اندازه کش
در فایل سرویس، پورت Listening پیش فرض بر روی 6081 تنظیم شده است، بنابراین باید این پورت را به پورت 80 و اندازه کش را به 2 گیگابایت تغییر دهیم، این فرآیند را با اجرای دستور زیر انجام می دهیم:
sudo vim /etc/systemd/system/varnish.service ExecStart=/usr/sbin/varnishd \ -a :80 \ -a localhost:8443,PROXY \ -p feature=+http2 \ -f /etc/varnish/default.vcl \ -s malloc, 2g
در این مرحله Deamon سیستم را با استفاده از دستور زیر دوباره بارگذاری می کنیم:
sudo systemctl daemon-reload
حال در این قسمت Varnish Cache را با دستور زیر راه اندازی و فعال می کنیم:
sudo systemctl start varnish
در آخر وضعیت سیستم را با کمک دستور زیر چک می کنیم:
systemctl status varnish ● varnish.service - Varnish Cache, a high-performance HTTP accelerator Loaded: loaded (/etc/systemd/system/varnish.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-02-08 09:22:45 UTC; 7s ago Process: 9945 ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,2g (c> Main PID: 9954 (varnishd) Tasks: 217 Memory: 91.6M CGroup: /system.slice/varnish.service ├─9954 /usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,2g └─9980 /usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,2g
Feb 08 09:22:45 ubuntu systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator... Feb 08 09:22:45 ubuntu varnishd[9954]: Version: varnish-7.0.2 revision 9b5f68e19ca0ab60010641e305fd12822f18d42c Feb 08 09:22:45 ubuntu varnishd[9954]: Platform: Linux,5.4.0-90-generic,x86_64,-junix,-smalloc,-sdefault,-hcritbit
مرحله 5: پیکر بندی وب سرور برای کار با Varnish Cache
می توانیم با تنظیم Varnish Cache برای گوش دادن به پورت 80 وب سرور را طوری تنظیم کنیم که روی پورت دیگری مثل 8080 شنیده شود، در این مرحله تنظیمات لازم را برای وب سرور مورد نظر انجام می دهیم.
مرحله 6: پیکربندی VCL Backend
تغییرات انجام شده تا این قسمت باید در VLC Backend ذخیره شده باشد، به طور پیش فرض پشتیبان VLC Backend بر روی پورت 8080 طوری پیکربندی شده است که به صورت یک نقطه قرار گیرد، این فایل به صورت زیر است:
sudo vim /etc/varnish/default.vcl ...... #Default backend definition. Set this to point to your content server. backend default { .host = "127.0.0.1"; .port = "8080"; } ......
مرحله 7: تایید سرور Varnish Cache 7
برای بررسی اینکه آیا سرور به درستی کار می کند، از دستور cURL زیر استفاده می کنیم:
curl -I server-ip
خروجی به صورت زیر است:
در پایان برای اینکه پی ببریم که Varish Cache کار می کند یا نه؟ باید به دنبال وجود هدر X-Varnish در پاسخ باشید، هدر Age در هنگام از دست دادن حافظه 0 و در Hit بالای 0 خواهد بود، اولین درخواست از یک صفحه همیشه از دست خواهد رفت.
برای تجربه سرعت بی نهایت در میزبانی وب سرور های آذرسیس بهترین گزینه شما خواهد بود، سرور اختصاصی، سرور مجازی لینوکس، سرور مجازی ویندوز و … را با بالاترین کیفیت جهانی تجربه کنید.
سخن آخر
در این مقاله نحوه نصب Varnish Cache 7 را بر روی اوبونتو 22.04 بررسی کردیم، قبل از انجام دادن مراحل توضیح داده شده، پیش نیاز هایی که در متن مقاله اشاره شده اند را نصب کنید.
با انجام مراحل توضیح داده شده با دستورات به راحتی می توان 7 Varnish Cache را بر روی اوبونتو نصب کرد، این فرآیند به شما در داشتن یک وب سرور با سرعت ایده آل کمک خواهد کرد.
امیدوارم خواندن این مقاله برای شما مفید واقع شده باشد و از مزالعه آن لذت برده باشد، از این که ما را همراهی کردید سپاسگزاریم.