جدول محتوایی
Varnish Cache چیست؟
Varnish Cache ( که Varnish هم نامیده می شود) یک شتاب دهنده HTTP اوپن سورس و با کارایی بالا است که برای افزایش سرعت وب سرورها طراحی شده است. در این مقاله قصد داریم نحوه نصب Varnish cache و هماهنگ کردن آن با Nginx در CentOS 7 را به شما آموزش دهیم.
Varnish cache یک پروکسی معکوس است که یک کپی از صفحه در حافظه ایجاد می کند. و در زمان بارگذاری کجدد صفحه، آن را ارائه می دهد. کپی بر اساس URL و روش درخواست ایجاد می شود. که به عنوان Full Page Cache شناخته می شود.
مرحله اول: نصب وب سرور Nginx روی Centos 7
با استفاده از yum اقدام به نصب وب سرور Nginx از مخازن Centos میکنیم:
# yum install nginx
پس از اتمام نصب، سرویس Nginx را راه اندازی کنید و آن را فعال کنید تا به طور خودکار در هنگام بوت شدن سیستم شروع شود.
# systemctl start nginx # systemctl enable nginx # systemctl status nginx
حالا باید قوانین فایروال سیستم را تغییر دهید تا بسته های ورودی در پورت 80 مجاز باشند:
# firewall-cmd --zone = public --permanent --add-port = 80 / tcp # firewall-cmd --reload # firewall-cmd --zone = public --permanent --add-port = 8080 / tcp # firewall-cmd --reload
مرحله دوم: نصب Varnish cache روی Centos 7
اکنون باید باید مخزن رسمی Varnish Cache را اضافه کنید.
قبل از آن باید مخزن EPEL را فعال و چند پکیج مکمل را نصب کنید:
# yum install -y epel-release
در مرحله بعد، pygpgme را نصب کنید. بسته ای برای مدیریت امضاهای GPG و yum-utils. مجموعه ای از ابزارهای مفید که از yum پشتیبانی میکند.
# yum install pygpgme yum-utils
اکنون باید فایلی با نام /etc/yum.repos.d/varnishcache_varnish5.repo را ایجاد کنید:
# vi /etc/yum.repos.d/varnishcache_varnish65.repo
سپس این محتوا را در آن قرار دهید:
مهم: مطمئن شوید که el و 7 را مطابق با توزیع و نسخه لینوکس خود جایگزین کنید.
[varnishcache_varnish65]
name=varnishcache_varnish65
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[varnishcache_varnish65-source]
name=varnishcache_varnish65-source
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
اکنون دستور زیر را اجرا کنید تا کش yum خود را به روز کنید و بسته کش Varnish cache را نصب کنید (فراموش نکنید در هنگام نصب بسته، کلید GPG را با تایپ y یا yes بپذیرید):
# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
# yum install varnish
پس از نصب Varnish Cache، فایل اجرایی اصلی به صورت /usr/sbin/varnishd نصب میشود و فایلهای پیکربندی varnish cache در /etc/varnish/ قرار دارند:
/etc/varnish/default.vcl : فایل پیکربندی اصلی که با استفاده از زبان پیکربندی vanish (VCL) نوشته شده است.
اکنون با دستورات زیر سرویس Varnish را راه اندازی کنید. آن را فعال کنید تا به طور خودکار در هنگام بوت شدن سیستم شروع به کار کند و وضعیت آن را بررسی کنید تا اطمینان حاصل کنید فعال است.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish
در آخر شما می توانید با مشاهده محل اجرای Varnish cache و نسخه نصب شده بر روی سیستم خود تأیید کنید که نصب Varnish با موفقیت انجام شده است:
$ which varnishd $ varnishd -V
نمونه ای از خروجی دستور بالا:
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64) کپیright (c) 2006 Verdens Gang AS کپیright (c) 2006-2020 Varnish Software
مرحله سوم: پیکربندی Nginx برای کار با Varnish Cache
در این مرحله باید Nginx را برای کار با Varnish Cache پیکربندی کنید. بهطور پیشفرض Nginx از پورت 80 استفاده میکند. باید پورت پیشفرض Nginx را به 8080 تغییر دهید تا با Varnish cache سازگار شود.
فایل پیکربندی Nginx /etc/nginx/nginx.conf را باز کنید و خط listen 80 را پیدا کنید و مانند تصویر زیر، آن را به listen 8080 تغییر دهید:
# vi /etc/nginx/nginx.conf
توجه: این کار باید در تمام فایلهای پیکربندی سرور (معمولاً در /etc/nginx/conf.d/ ایجاد میشود) برای وبسایتهایی که میخواهید از طریق Varnish ارائه شوند، انجام شود.
سپس، فایل پیکربندی سرویس varnish را باز کنید و پارامتر ExecStart را پیدا کنید. این پارامتر مشخص می کند پورتی که Varnish به آن گوش می دهد چیست. مقدار آن را از 6081 به 80 تغییر دهید.
# systemctl edit --full varnish
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
در مرحله بعد، Nginx را به عنوان یک سرور پشتیبان برای پروکسی Varnish cache در فایل پیکربندی /etc/varnish/default.vcl راه اندازی کنید.
# vi /etc/varnish/default.vcl
بخش Backend را پیدا کنید و IP و پورت میزبان را تعریف کنید. کدی که پایین میبینید حالت پیشفرض است. آن را طوری تنظیم کنید که به سرور محتوای واقعی شما اشاره کند.
# systemctl daemon-reload
# systemctl restart nginx
# systemctl restart varnish
مرحله چهارم: تست Varnish Cache در Nginx
در نهایت، با استفاده از دستور cURL برای مشاهده هدر HTTP، بررسی کنید که کش Varnish فعال است و با سرویس Nginx کار می کند.
# curl -I http://localhost
برای مثال چنین خروجی را باید ببینید:
HTTP/1.1 200 OK Server: nginx/1.16.1 Date: Wed, 06 Jan 2021 09:24:18 GMT Content-Type: text/html Content-Length: 4833 Last-Modified: Fri, 16 May 2014 15:12:48 GMT ETag: "53762af0-12e1" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/6.5) Accept-Ranges: bytes Connection: keep-alive
جمع بندی
در این آموزش، نحوه نصب و راه اندازی Varnish Cache برای وب سرور Nginx HTTP در CentOS 7 را توضیح دادیم. امیدواریم برایتان مفید بوده باشد.
ممنون جالب بود
با سپاس
مثل همیشه عالی و جذاب
تخفیف سرور مجازی هم موجود کنید باز
اگر ممکن است این پست رو بروز کنید نکات دیگری هم عنوان شده در نت
ممنون خدا قوت
ممنون هرچی در مورد این موضوع میخواستم به راحتی عنوان کرده بودید