Varnish Cache คืออะไร และวิธีติดตั้งบน Cloud Server
Varnish Cache คือชั้นแคชที่วางไว้หน้าเว็บเซิร์ฟเวอร์เพื่อเก็บหน้าเว็บที่สร้างเสร็จแล้วไว้ในหน่วยความจำ ทำให้ผู้ใช้คนถัดไปได้รับหน้าเดียวกันทันทีโดยแอปไม่ต้องประมวลผลซ้ำ
- หมวดหมู่
- Web Server และ Proxy
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- BSD 2-Clause (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Varnish Cache คืออะไร
เว็บที่มีผู้ชมจำนวนมากมักเสียเวลาส่วนใหญ่ไปกับการสร้างหน้าเดิมซ้ำ ๆ ให้ผู้ใช้แต่ละคน Varnish ตัดงานนั้นออกโดยเก็บผลลัพธ์ไว้ในหน่วยความจำและตอบจากแคชโดยตรง ซึ่งเร็วกว่าการให้แอปสร้างใหม่หลายสิบเท่า
จุดที่ทำให้ Varnish ต่างจากแคชทั่วไปคือภาษาตั้งค่าที่ชื่อ VCL ซึ่งเขียนกฎได้ละเอียดมาก เช่น หน้าไหนแคชได้ หน้าไหนต้องผ่านไปหาแอปเสมอ และจะจัดการคุกกี้อย่างไร
ความยืดหยุ่นนั้นแลกมาด้วยความซับซ้อน กฎที่เขียนผิดอาจทำให้ผู้ใช้เห็นข้อมูลของคนอื่น เช่น ตะกร้าสินค้าหรือหน้าที่ต้องเข้าสู่ระบบ จึงต้องทดสอบให้ครบก่อนใช้กับเว็บจริงเสมอ
ความสามารถเด่นของ Varnish Cache
แคชในหน่วยความจำ
ตอบหน้าเว็บจากแรมโดยตรง รองรับคำขอจำนวนมากด้วยทรัพยากรน้อย
เขียนกฎได้ละเอียดด้วย VCL
กำหนดได้ว่าอะไรแคชได้ อะไรต้องผ่าน และจะจัดการคุกกี้อย่างไร
ส่งหน้าเก่าเมื่อแอปล่ม
ยังตอบผู้ใช้จากแคชได้ชั่วคราวแม้เซิร์ฟเวอร์เบื้องหลังมีปัญหา
ล้างแคชแบบเจาะจงได้
สั่งล้างเฉพาะหน้าที่เนื้อหาเปลี่ยนโดยไม่ต้องล้างทั้งเว็บ
มีเครื่องมือดูสถิติ
ดูอัตราการตอบจากแคชแบบเรียลไทม์เพื่อวัดว่ากฎที่เขียนได้ผลจริง
ใช้ Varnish Cache ทำอะไรได้บ้าง
- เว็บข่าวหรือเว็บเนื้อหาที่มีผู้ชมจำนวนมากอ่านหน้าเดียวกัน
- เว็บอีคอมเมิร์ซที่ต้องการแคชหน้าสินค้าแต่ยกเว้นตะกร้าและหน้าชำระเงิน
- ระบบที่ต้องรับทราฟฟิกพุ่งเป็นช่วงจากแคมเปญ
- ชั้นแคชหน้า API ที่ตอบข้อมูลเดิมซ้ำบ่อย
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นเว็บเดียวที่มีทราฟฟิกปานกลาง | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำแคชขนาดหลายกิกะไบต์สำหรับเว็บเนื้อหา | 4 vCPU | 8 GB | NVMe 60 GB |
| ทราฟฟิกสูงหน้าที่ต้องเก็บในแคชมีจำนวนมาก ยิ่ง RAM มากยิ่งดี | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 100 GB |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Varnish Cache บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
- เว็บเซิร์ฟเวอร์เบื้องหลังที่ทำงานอยู่แล้ว
- ตัวรับ HTTPS ไว้ด้านหน้า เพราะ Varnish ไม่ได้จัดการ TLS เอง
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Varnish
sudo apt update sudo apt -y install varnish - 2
ตั้งค่าเซิร์ฟเวอร์เบื้องหลังใน /etc/varnish/default.vcl
ชี้ไปที่เว็บเซิร์ฟเวอร์ที่รันอยู่ ซึ่งควรย้ายไปฟังพอร์ตภายในแทนพอร์ต 80
vcl 4.1; backend default { .host = "127.0.0.1"; .port = "8080"; } sub vcl_recv { # หน้าที่ต้องเห็นข้อมูลเฉพาะบุคคล ห้ามแคช if (req.url ~ "^/(cart|checkout|my-account|wp-admin)") { return (pass); } } - 3
ตั้งขนาดแคชและพอร์ตที่รับทราฟฟิก
แก้ไฟล์บริการของ systemd ให้ Varnish ฟังพอร์ต 80 และกำหนดขนาดแคชในหน่วยความจำ
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,4g - 4
รีโหลดและเริ่มบริการ
sudo systemctl daemon-reload sudo systemctl restart varnish - 5
วางตัวรับ HTTPS ไว้ด้านหน้า
ให้ Nginx หรือ Caddy รับพอร์ต 443 จัดการใบรับรอง แล้วส่งต่อมาที่ Varnish เพราะ Varnish ไม่ได้ทำ TLS เอง
- 6
ตรวจว่าแคชทำงานจริง
ดูอัตราการตอบจากแคชแบบเรียลไทม์ ถ้าตัวเลขต่ำผิดปกติมักเกิดจากคุกกี้ที่ทำให้ทุกคำขอถูกมองว่าไม่เหมือนกัน
varnishstat varnishlog -g request
ทดสอบให้ครบก่อนใช้จริงว่าหน้าที่ต้องเข้าสู่ระบบและหน้าตะกร้าไม่ถูกแคช เพราะความผิดพลาดจุดนี้ทำให้ผู้ใช้เห็นข้อมูลของคนอื่น
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 80 | TCP | รับทราฟฟิกที่ส่งต่อมาจากตัวรับ HTTPS |
| 8080 | TCP | เว็บเซิร์ฟเวอร์เบื้องหลัง (เฉพาะภายในเครื่อง) |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ตรวจสอบกฎ VCL ให้แน่ใจว่าหน้าที่มีข้อมูลส่วนบุคคลไม่ถูกแคช
- จำกัดสิทธิ์การสั่งล้างแคชให้เฉพาะไอพีภายในที่เชื่อถือได้
- ไม่เปิดพอร์ตของเว็บเซิร์ฟเวอร์เบื้องหลังออกสู่อินเทอร์เน็ต
- ตรวจ Log และอัตราการตอบจากแคชเป็นระยะเพื่อจับกฎที่เขียนผิด
ทำไมควรรัน Varnish Cache บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
ทำให้เว็บเดิมรับผู้ชมได้มากขึ้นหลายเท่าโดยไม่ต้องเพิ่มสเปกเครื่องแอป
ใช้ RAM ของ Cloud Server เป็นแคช จึงเพิ่มความจุแคชได้ทันทีด้วยการเพิ่ม RAM
ใช้ร่วมกับ Cloud CDN ได้ โดย CDN รับผู้ชมจากทั่วประเทศและ Varnish ลดภาระที่ต้นทาง
คำถามที่พบบ่อยเกี่ยวกับ Varnish Cache
ต้องใช้ Varnish ไหมถ้ามี CDN แล้ว
ไม่จำเป็นเสมอไป CDN แคชที่ขอบเครือข่ายซึ่งช่วยเรื่องระยะทาง ส่วน Varnish ช่วยลดภาระที่เซิร์ฟเวอร์ต้นทางโดยตรง เว็บที่มีเนื้อหาเปลี่ยนบ่อยและมีผู้ชมจำนวนมากมักได้ประโยชน์จากทั้งสองชั้น
ใช้กับ WordPress ได้ไหม
ได้และเป็นการใช้งานที่พบบ่อย แต่ต้องตั้งกฎยกเว้นหน้าหลังบ้าน หน้าเข้าสู่ระบบ และหน้าที่มีข้อมูลผู้ใช้ให้ครบ พร้อมใช้ปลั๊กอินที่สั่งล้างแคชเมื่อเนื้อหาเปลี่ยน
Varnish ทำ HTTPS ได้ไหม
ไม่ได้โดยตรง ต้องมีตัวรับ HTTPS อย่าง Nginx หรือ Caddy อยู่ด้านหน้าเพื่อถอดรหัสแล้วส่งต่อมา ซึ่งเป็นสถาปัตยกรรมมาตรฐานที่ใช้กันทั่วไป
ทางเลือกอื่นที่คล้ายกับ Varnish Cache
แอปอื่นในหมวด Web Server และ Proxy
- #3Nginxเว็บเซิร์ฟเวอร์และ Reverse Proxy ที่เร็วที่สุด
- #8Apache HTTP Serverเว็บเซิร์ฟเวอร์รุ่นคลาสสิกที่รองรับ .htaccess
- #35TraefikReverse Proxy สำหรับยุค Container
- #36HAProxyLoad Balancer ระดับ Production
- #37Caddyเว็บเซิร์ฟเวอร์ที่ออก SSL อัตโนมัติ
- Envoy ProxyService Proxy สำหรับสถาปัตยกรรม Microservices
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Varnish Cache ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด