โลโก้ Varnish Cache
Web Server และ ProxyBSD 2-Clause (โอเพนซอร์ส)

Varnish Cache คืออะไร และวิธีติดตั้งบน Cloud Server

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

หมวดหมู่
Web Server และ Proxy
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
BSD 2-Clause (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Varnish Cache คืออะไร

เว็บที่มีผู้ชมจำนวนมากมักเสียเวลาส่วนใหญ่ไปกับการสร้างหน้าเดิมซ้ำ ๆ ให้ผู้ใช้แต่ละคน Varnish ตัดงานนั้นออกโดยเก็บผลลัพธ์ไว้ในหน่วยความจำและตอบจากแคชโดยตรง ซึ่งเร็วกว่าการให้แอปสร้างใหม่หลายสิบเท่า

จุดที่ทำให้ Varnish ต่างจากแคชทั่วไปคือภาษาตั้งค่าที่ชื่อ VCL ซึ่งเขียนกฎได้ละเอียดมาก เช่น หน้าไหนแคชได้ หน้าไหนต้องผ่านไปหาแอปเสมอ และจะจัดการคุกกี้อย่างไร

ความยืดหยุ่นนั้นแลกมาด้วยความซับซ้อน กฎที่เขียนผิดอาจทำให้ผู้ใช้เห็นข้อมูลของคนอื่น เช่น ตะกร้าสินค้าหรือหน้าที่ต้องเข้าสู่ระบบ จึงต้องทดสอบให้ครบก่อนใช้กับเว็บจริงเสมอ

แผนผังการวางระบบ Varnish Cache บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 80, 8080 ตัว Varnish Cache และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Varnish Cache ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Varnish Cache

แคชในหน่วยความจำ

ตอบหน้าเว็บจากแรมโดยตรง รองรับคำขอจำนวนมากด้วยทรัพยากรน้อย

เขียนกฎได้ละเอียดด้วย VCL

กำหนดได้ว่าอะไรแคชได้ อะไรต้องผ่าน และจะจัดการคุกกี้อย่างไร

ส่งหน้าเก่าเมื่อแอปล่ม

ยังตอบผู้ใช้จากแคชได้ชั่วคราวแม้เซิร์ฟเวอร์เบื้องหลังมีปัญหา

ล้างแคชแบบเจาะจงได้

สั่งล้างเฉพาะหน้าที่เนื้อหาเปลี่ยนโดยไม่ต้องล้างทั้งเว็บ

มีเครื่องมือดูสถิติ

ดูอัตราการตอบจากแคชแบบเรียลไทม์เพื่อวัดว่ากฎที่เขียนได้ผลจริง

ใช้ Varnish Cache ทำอะไรได้บ้าง

  • เว็บข่าวหรือเว็บเนื้อหาที่มีผู้ชมจำนวนมากอ่านหน้าเดียวกัน
  • เว็บอีคอมเมิร์ซที่ต้องการแคชหน้าสินค้าแต่ยกเว้นตะกร้าและหน้าชำระเงิน
  • ระบบที่ต้องรับทราฟฟิกพุ่งเป็นช่วงจากแคมเปญ
  • ชั้นแคชหน้า API ที่ตอบข้อมูลเดิมซ้ำบ่อย

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Varnish Cache 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 40 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 100 GB โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นเว็บเดียวที่มีทราฟฟิกปานกลาง2 vCPU4 GBNVMe 40 GB
แนะนำแคชขนาดหลายกิกะไบต์สำหรับเว็บเนื้อหา4 vCPU8 GBNVMe 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. 1

    ติดตั้ง Varnish

    sudo apt update
    sudo apt -y install varnish
  2. 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. 3

    ตั้งขนาดแคชและพอร์ตที่รับทราฟฟิก

    แก้ไฟล์บริการของ systemd ให้ Varnish ฟังพอร์ต 80 และกำหนดขนาดแคชในหน่วยความจำ

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

    รีโหลดและเริ่มบริการ

    sudo systemctl daemon-reload
    sudo systemctl restart varnish
  5. 5

    วางตัวรับ HTTPS ไว้ด้านหน้า

    ให้ Nginx หรือ Caddy รับพอร์ต 443 จัดการใบรับรอง แล้วส่งต่อมาที่ Varnish เพราะ Varnish ไม่ได้ทำ TLS เอง

  6. 6

    ตรวจว่าแคชทำงานจริง

    ดูอัตราการตอบจากแคชแบบเรียลไทม์ ถ้าตัวเลขต่ำผิดปกติมักเกิดจากคุกกี้ที่ทำให้ทุกคำขอถูกมองว่าไม่เหมือนกัน

    varnishstat
    varnishlog -g request

ทดสอบให้ครบก่อนใช้จริงว่าหน้าที่ต้องเข้าสู่ระบบและหน้าตะกร้าไม่ถูกแคช เพราะความผิดพลาดจุดนี้ทำให้ผู้ใช้เห็นข้อมูลของคนอื่น

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
80TCPรับทราฟฟิกที่ส่งต่อมาจากตัวรับ HTTPS
8080TCPเว็บเซิร์ฟเวอร์เบื้องหลัง (เฉพาะภายในเครื่อง)

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • ตรวจสอบกฎ 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 ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด