CloudFlare ตั้งค่า Cache สุดโหด ลดภาระเซิฟเวอร์

เชื่อว่าหลายๆท่านคงจะเคยได้ยิน CloudFlare ในที่นี้ผมจะเรียกสั้นๆว่า CF นะครับ โดยตัวมันเอง สามารถที่จะใช้งานได้ฟรี แถมยังมี SSL ให้ฟรี และปัจจุบันก็รองรับ HTTP 2 โดยที่เราไม่ต้องทำอะไรที่เซิฟเวอร์จริงๆเลย หรือแม้ว่าเซิฟเวอร์จริงๆของเราจะรองรับแค่ HTTP 1.0/1.1 หากเราไปใช้บริการ CF เราก็จะได้ใช้ HTTP 2 กันเลยฟรีๆ

แต่บทความนี้จะเจาะลึกลงไปยังการ Caching ข้อมูลในเว็บของเราระดับโหด ซึ่งหากเราใช้ CF โดยไม่ได้ปรับแต่งอะไรมาก จากที่ตรวจสอบพบว่ายังมี Traffic เข้ามาเรียกข้อมูลในหน้าเว็บไซต์ตลอดเวลา เพื่อให้เกิดความ Real-Time แต่ในบางครั้ง หน้าเว็บไซต์ของเราไม่ได้มีเนื้อหาอัพเดตอยู่อย่างสม่ำเสมอ หรือเนื้อหาอัพเดตตลอดเวลา อาจจะเป็นเว็บไซต์แนวๆอ่านข้อมูลซะมากกว่า เป็นต้น การ Caching ในบทความนี้จึงเหมาะกับเว็บประเภทนี้มากกว่านะครับ สำหรับเว็บบอร์ด หรือเว็บไซต์ที่ต้องอัพเดตเนื้อหาแบบ Real-Time อาจจะไม่เหมาะกับวิธีการที่ผมจะกล่าวต่อไปนี้ครับ

ก่อนอื่นเรามาดูจากกราฟ MRTG ที่ผมได้ทดสอบระหว่าง Caching กับไม่ได้ Caching แต่ยังใช้ CloudFlare (CF) มาดักไว้ข้างหน้าอยู่นะครับ ไม่ได้เข้ามาตรงๆที่เซิฟเวอร์ ผลปรากฏดังกราฟด้านล่างนี้ครับ

MRTG

อธิบายกราฟ MRTG: ช่วงที่กราฟสูงๆ นั่นคือการที่เราไม่ได้ทำ Caching แต่ยังใช้บริการ CloudFlare อยู่ครับ ส่วนช่วงที่กราฟต่ำๆ คือการตั้งค่า Caching ไว้ที่ CloudFlare แล้วครับ

ส่วนด้านล่างนี้จะเป็นกราฟฝั่งของทาง CloudFlare ตอนที่เราทดสอบการแคช และไม่แคช ในเวลาเดียวกันนะครับ

CloudFlare Caching

สำหรับรูปด้านล่าง จะเป็น Bandwidth ที่อยู่กับทาง CloudFlare และไม่ได้หลุดเข้ามาที่เซิฟเวอร์ตรงๆ (ข้อมูลจะเป็น 24 ชั่วโมงล่าสุดนะครับ)

CloudFlare Bandwidth Saved

วิธีการตั้งค่า Caching:

การตั้งค่า Caching นั้น คงต้องอธิบายว่าแต่ละเว็บไซต์คงไม่เหมือนกัน เพราะว่าเราจะต้องมีบางหน้า ที่ต้องการข้อมูลที่ Real-Time เช่น หน้าเข้าสู่ระบบ (Login) ในที่นี้ผมจะยกตัวอย่าง WordPress CMS ที่จะเห็นภาพได้ชัด และเชื่อว่าหลายๆคนก็คงจะเคยใช้กันอยู่แล้วนะครับ ข้อมูลที่ไม่ได้ต้องการ Real-Time ก็คือข้อมูลหน้าเว็บไซต์ พวก Post, Page, Category, Tags และข้อมูลที่ต้องการความ Real-Time ก็คือ /wp-admin หรือระบบหลังบ้านของ WordPress เวลาเรา Login หรือเข้าไป Management ต่างๆ ต้องการข้อมูลที่ Real-Time เสมอ

หากเข้าใจด้านบนนี้แล้ว เราก็จะรู้ว่าเราควรจะตั้งค่าให้ Caching ข้อมูลอย่างไรนะครับ วิธีการตั้งค่า ให้เราเข้าไปยังโดเมนนั้นๆของเราใน CloudFlare และไปที่เมนู “Page Rules” สำหรับ Package Free เราจะสามารถสร้าง Page Rules ได้ทั้งหมด 3 Rules ด้วยกัน ส่วนตัวเสียเงินอันนี้ผมไม่รู้ว่าได้เท่าไรนะครับ (ขอข้ามไป)

การเรียบลำดับ Page Rules คือ “อันบนสุด สำคัญสุด และจะไม่ทำอันต่อไป หากเข้าเงื่อนไขอันใดอันหนึ่ง” การตั้งค่า WordPress จึงตั้งค่าได้ตามนี้ครับ

CF Caching Page Rules

Bypass : ไม่ทำแคช ให้วิ่งเข้าหาเซิฟเวอร์ตรงๆ

Cache Everything : ทำการแคชทุกๆอย่าง

สำหรับบทความนี้ก็คงขอจบเท่านี้นะครับ การนำเอาไปใช้งาน ก็ขึ้นอยู่กับตัวเว็บไซต์ของท่านด้วย ใช้ Script อะไร? และจะนำเอาไปประยุกต์ใช้งานให้เกิดประโยชน์ได้อย่างไรครับ 🙂