ค้นหาเว็บไซต์

วิธีการติดตั้ง Varnish Cache 5.2 สำหรับ Nginx บน CentOS 7


Varnish Cache (หรือเรียกอีกอย่างว่า Varnish) เป็นตัวเร่ง HTTP แบบโอเพ่นซอร์สและประสิทธิภาพสูง ออกแบบมาเพื่อเร่งความเร็วเว็บเซิร์ฟเวอร์ ในบทความล่าสุดของเรา เราได้อธิบายวิธีตั้งค่า Varnish Cache สำหรับ Apache บน CentOS 7 และ CentOS 8

ในบทความนี้ เราจะแสดงวิธีการติดตั้งและใช้ Varnish Cache เป็นส่วนหน้าของเซิร์ฟเวอร์ Nginx HTTP ใน CentOS 7 คู่มือนี้ควรใช้กับ RHEL 7 ได้ด้วย

ความต้องการ

  1. CentOS 7 ที่ติดตั้ง Apache
  2. CentOS 7 พร้อมที่อยู่ IP แบบคงที่

ขั้นตอนที่ 1: ติดตั้งเว็บเซิร์ฟเวอร์ Nginx บน CentOS 7

1. เริ่มต้นด้วยการติดตั้งเซิร์ฟเวอร์ Nginx HTTP จากที่เก็บซอฟต์แวร์ CentOS เริ่มต้นโดยใช้ตัวจัดการแพ็คเกจ YUM ดังต่อไปนี้

yum install nginx

2. เมื่อการติดตั้งเสร็จสมบูรณ์ ให้เริ่มบริการ Nginx ในตอนนี้ และเปิดใช้งานให้เริ่มโดยอัตโนมัติเมื่อบูตระบบ

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. ตอนนี้แก้ไขกฎไฟร์วอลล์ของระบบเพื่ออนุญาตแพ็กเก็ตขาเข้าบนพอร์ต 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

ขั้นตอนที่ 2: ติดตั้ง Varnish Cache บน CentOS 7

4. ขณะนี้มีแพ็คเกจ RPM ที่คอมไพล์ไว้ล่วงหน้าสำหรับ Varnish Cache 6 เวอร์ชันล่าสุด (เช่น 6.5 ในขณะที่เขียน) ดังนั้น คุณต้องเพิ่มที่เก็บ Varnish Cache อย่างเป็นทางการ

ก่อนหน้านั้น คุณต้องเปิดใช้งานพื้นที่เก็บข้อมูล EPEL เพื่อติดตั้งแพ็คเกจการพึ่งพาหลายรายการดังที่แสดง

yum install -y epel-release

5. จากนั้น ติดตั้ง pygpgme ซึ่งเป็นแพ็คเกจสำหรับจัดการลายเซ็น GPG และ yum-utils ซึ่งเป็นชุดของยูทิลิตี้ที่มีประโยชน์ที่ขยายคุณสมบัติดั้งเดิมของ yum ในรูปแบบต่างๆ

yum install pygpgme yum-utils

6. ตอนนี้ให้สร้างไฟล์ชื่อ /etc/yum.repos.d/varnishcache_varnish5.repo ซึ่งมีการกำหนดค่าที่เก็บด้านล่าง

vi /etc/yum.repos.d/varnishcache_varnish65.repo

ข้อสำคัญ: ตรวจสอบให้แน่ใจว่าได้แทนที่ el และ 7 ในการกำหนดค่าด้านล่างด้วยการกระจายและเวอร์ชัน Linux ของคุณ:

[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

7. ตอนนี้ให้รันคำสั่งด้านล่างเพื่ออัปเดตแคช yum ในเครื่องของคุณ และติดตั้งแพ็คเกจแคชวานิช (อย่าลืมยอมรับคีย์ GPG โดยการพิมพ์ y หรือ yes ขณะติดตั้งแพ็คเกจ):

yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
yum install varnish 

8. หลังจากติดตั้ง Varnish Cache ไฟล์ปฏิบัติการหลักจะถูกติดตั้งเป็น /usr/sbin/varnishd และไฟล์การกำหนดค่า varnish จะอยู่ใน >/etc/วานิช/:

  • /etc/varnish/default.vcl – นี่คือไฟล์การกำหนดค่าวานิชหลัก ซึ่งเขียนโดยใช้ภาษาการกำหนดค่าแบบ vanish (VCL)

9. ตอนนี้ให้เริ่มบริการเคลือบเงา เปิดใช้งานให้เริ่มโดยอัตโนมัติระหว่างการบูตระบบ และตรวจสอบสถานะเพื่อให้แน่ใจว่ามีการใช้งานและทำงานดังต่อไปนี้

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. คุณสามารถยืนยันได้ว่าการติดตั้ง Varnish สำเร็จโดยดูตำแหน่งของไฟล์ปฏิบัติการ Varnish และเวอร์ชันที่ติดตั้งบนระบบของคุณ

which varnishd
varnishd -V
ผลลัพธ์ตัวอย่าง
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

ขั้นตอนที่ 3: กำหนดค่า Nginx ให้ทำงานกับ Varnish Cache

11. ในขั้นตอนนี้ คุณต้องกำหนดค่า Nginx ให้ทำงานกับ Varnish Cache ตามค่าเริ่มต้น Nginx จะรับฟังพอร์ต 80 คุณควรเปลี่ยนพอร์ต Nginx เริ่มต้นเป็น 8080 เพื่อให้ทำงานตามหลังแคชวานิช

เปิดไฟล์กำหนดค่า Nginx /etc/nginx/nginx.conf และค้นหาบรรทัด Listen 80 และเปลี่ยนเป็น Listen 8080 เช่นเดียวกับในเซิร์ฟเวอร์ บล็อกที่แสดงในภาพหน้าจอด้านล่าง

vi /etc/nginx/nginx.conf

หมายเหตุ: ควรทำในไฟล์การกำหนดค่าบล็อกเซิร์ฟเวอร์ทั้งหมด (โดยปกติจะสร้างภายใต้ /etc/nginx/conf.d/) สำหรับเว็บไซต์ที่คุณต้องการให้บริการผ่าน >วานิช.

12. จากนั้น เปิดไฟล์การกำหนดค่าบริการวานิช และค้นหาพารามิเตอร์ ExecStart ซึ่งระบุพอร์ตที่วานิชรับฟัง และเปลี่ยนค่าจาก 6081 ถึง 80

systemctl edit --full  varnish

เส้นควรมีลักษณะตามที่แสดง

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. จากนั้น ตั้งค่า Nginx เป็นเซิร์ฟเวอร์แบ็กเอนด์สำหรับพร็อกซี Varnish ในไฟล์การกำหนดค่า /etc/varnish/default.vcl

vi /etc/varnish/default.vcl 

ค้นหาส่วน แบ็กเอนด์ และกำหนด IP ของโฮสต์และพอร์ต ด้านล่างนี้คือการกำหนดค่าแบ็กเอนด์เริ่มต้น ตั้งค่าให้ชี้ไปที่เซิร์ฟเวอร์เนื้อหาจริงของคุณ

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

14. หลังจากดำเนินการกำหนดค่าที่จำเป็นทั้งหมดแล้ว ให้รีสตาร์ท Nginx HTTPD และ Varnish cache เพื่อให้มีผลกับการเปลี่ยนแปลงข้างต้น

systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

ขั้นตอนที่ 4: ทดสอบ Varnish Cache บน Nginx

15. สุดท้าย ทดสอบว่าเปิดใช้งานแคช Varnish และทำงานร่วมกับบริการ Nginx โดยใช้คำสั่ง cURL ด้านล่างเพื่อดูส่วนหัว HTTP หรือไม่

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 Github Repository: https://github.com/varnishcache/varnish-cache

ในบทช่วยสอนนี้ เราได้อธิบายวิธีการตั้งค่า Varnish Cache สำหรับเซิร์ฟเวอร์ Nginx HTTP บน CentOS 7 ใช้แบบฟอร์มความคิดเห็นด้านล่างเพื่อส่งคำถามหรือแนวคิดเพิ่มเติมถึงเรา