جدول محتوایی

Varnish Cache چیست؟

Varnish Cache ( که Varnish هم نامیده می شود) یک شتاب دهنده HTTP اوپن سورس و با کارایی بالا است که برای افزایش سرعت وب سرورها طراحی شده است. در این مقاله قصد داریم نحوه نصب Varnish cache و هماهنگ کردن آن با Nginx در CentOS 7 را به شما آموزش دهیم.

Varnish cache یک پروکسی معکوس است که یک کپی از صفحه در حافظه ایجاد می کند. و در زمان بارگذاری کجدد صفحه، آن را ارائه می دهد. کپی بر اساس URL و روش درخواست ایجاد می شود. که به عنوان Full Page Cache شناخته می شود.

vatnish cache iranicaserver


 

مرحله اول: نصب وب سرور Nginx روی Centos 7

 

با استفاده از yum اقدام به نصب وب سرور Nginx از مخازن Centos میکنیم:

# yum install nginx

vatnish cache iranicaserver

 

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

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

vatnish cache iranicaserver

 

حالا باید قوانین فایروال سیستم را تغییر دهید تا بسته های ورودی در پورت 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

vatnish cache iranicaserver

 

پس از نصب 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

vatnish cache iranicaserver

 

در آخر شما می توانید با مشاهده محل اجرای 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

varnish cache iranicaserver

 

توجه: این کار باید در تمام فایل‌های پیکربندی سرور (معمولاً در /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

varnish cache iranicaserver

 

در مرحله بعد، 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 را توضیح دادیم. امیدواریم برایتان مفید بوده باشد.

 

نظر شما درباره این پست چه بود ؟

دسته بندی شده در: