ใช้งาน WordPress กับ CloudFlare
ผมเป็นเว็บบล็อกเล็กๆ ครับ แต่ทุกๆ ครั้งที่เขียนบล็อกที่มีการเปลี่ยนแปลงอะไรสำคัญๆ จะมี Traffic เข้าเว็บมากขึ้นกว่าปกติเป็นร้อยเท่าครับ ปัจจุบันเวลาเราไม่สามารถโยนเรื่อง Performance ว่าต้องจัดการสำหรับเว็บไซต์ใหญ่ๆ เท่านั้น แต่ว่าเว็บบล็อกเองก็ต้องจัดการในส่วนนี้ให้ดี ปัจจุบันคนเข้าถึงอินเตอร์เน็ตมาก และการอัพเดทผ่าน Facebook / Twitter นั้นทำให้วิธีการบริโภคเร็วกว่าเดิมมาก ถ้าสมมุติว่าเราลงบล็อกหัวข้อที่น่าสนใจ Traffic ที่เกิดขึ้น จะเกิดขึ้น ณ ตอนนั้นทันที ถ้ามีกระแส Viral มาด้วยแล้ว ยิ่งทำให้ปริมาณ Hits ทยานฟ้าจากปกติเลยหละครับ
จากภาพ เป็น Traffic จริงๆ ที่เข้ามาในบล็อกเล็กๆ แห่งนี้ เวลาโพสปุ๊ปกราฟจะพุ่งขึ้นอย่างรวดเร็ว จากในภาพ ช่วง Peak สุดสูงถึง 24,000+ connections/hrs หรือประมาณ 7 connections / second ตรงนี้ Traffic เข้ามาที่เซิฟเวอร์ที่ผมใช้จริงๆ อาจจะแค่ 0.5 connections / second เท่านั้นเอง ส่วนที่เหลือให้ CloudFlare ช่วยจัดการให้ทั้งหมด
(อย่าลืมว่า รูป 1 รูป คือ 1 connection นะครับ ดังนั้น ใน 1 หน้า อาจมี Requests เกิดขึ้นไม่ต่ำกว่า 10 Requests)
CloudFlare เป็นเว็บไซต์ที่ให้ช่วยให้เว็บไซต์ของเรามีคุณภาพมากขึ้น โดยที่ไม่ต้องอาศัยความรู้ทางเทคนิคมากนัก ก็ช่วยให้เว็บไซต์เราเร็วขึ้น และ ปลอดภัยมากขึ้นได้ครับ ขุมพลังอย่าง Cloudflare มีบริการเปิดเริ่มต้นที่เปิดให้เราใช้งานได้ฟรีอยู่หลายอย่างน่าสนใจครับ ทั้งในเรื่องของ Caching ที่ช่วยให้คนสามารถเข้าถึงเว็บไซต์เราได้เร็วขึ้น รวมถึง Free SSL Certificate ที่ทำให้คนทั่วไปสามารถเข้าเว็บไซต์เราได้ปลอดภัยมากขึ้นครับ ถ้ามองง่ายๆ ก็คือเว็บพวกธนาคารที่มีกุญแจดอกเขียวๆ ตรง URL นั้นแลครับ
การใช้งานก็ไม่ยากเย็นมากนัก หลังจากสมัคร CloudFlare ไป ก็เพียงแค่เป็น DNS Server ไปอยู่ที่ CloudFlare เท่านั้น เป็นอันเสร็จครับ เสร็จแล้วเราก็เลือกได้เลยว่าเราต้องการให้ CloudFlare ช่วยจัดการอะไรให้กับเราบ้าง
Caching
จากเดิม เวลาคนเข้าเว็บไซต์ เซิร์ฟเวอร์ของเราต้องมาจัดการโหลด ก็เปลี่ยนใหม่เป็น ส่ง Traffic ทั้งหมดไปที่ Cloudflare แล้วหลังจากนั้น ถ้าเนื้อหาส่วนใดที่ Cloudflare ยังไม่มี ก็ค่อยมาเรียกจะเซิร์ฟเวอร์เราครับ ซึ่งตรงนี้ช่วยประหยัดพลังงานในฝั่งเซิร์ฟเวอร์ของเราไปได้ครับ
ใน Cloudflare จะเลือกวิธีการ Caching ได้สามรูปแบบ
รูปแบบ Standard ก็ทำการ Caching ปกติเลย หรือจะให้ Cache เฉพาะเวลาไม่มีการส่ง Query String ก็ได้ครับ หรือแบบสุดท้ายคือ ถ้ามีการส่ง Query String ก็ให้ถือซะว่าใช้ Cache แบบเดียวกันกับตอนที่ไม่มี Query String
ตรงนี้ปกติไม่ต้องติดตั้งค่าอะไรเพิ่มเติม เซ็ตเป็น Standard เหมาะสมกับการใช้งานทั่วไปอยู่แล้วครับ
ในกรณีที่เรากำลังแก้ไขปัญหาเซิร์ฟเวอร์ของเรา แล้วต้องการเห็นผลทันทีแบบไม่ติด Cache ก็สามารถเลือกเป็น Development Mode ได้ เพื่อบอก Cloudflare ให้ส่งตรง Traffic จากเซิร์ฟเวอร์เรา โดยไม่ต้องใช้ Cache ครับ
SSL Certificate
การที่เว็บไซต์เราเข้าผ่าน HTTPS นั้น ตอนนี้ถือว่าควรจะต้องมีครับ มันไม่เพียงที่ทำให้คนเข้ามาปลอดภัยเพียงเท่านั้น แต่ยังรวมถึง SEO ของเว็บไซต์เราด้วย (ข่าวเก่า : Google เพิ่ม HTTPS เป็น Signal ทำ Ranking) ดังนั้น ถ้าหากอยากให้เว็บไซต์เรามีคนเห็นได้ง่ายขึ้น HTTPS เป็นปัจจัยหนึ่งแน่นอนครับ
ปัญหาการใช้งาน
สำหรับปัญหาการใช้งานที่ผมพบจากการทดสอบการใช้งาน WordPress กับ CloudFlare เกิดขึ้น การทำงานทั่วไปสามารถ Transparent ได้สมบูรณ์ครับ
ปัญหาเกิดขึ้นเมื่อเปิดโหมดใช้งาน HTTPS แบบ Flexible ซึ่งในรูปแบบนี้ สำหรับเซิร์ฟเวอร์ของเราจะมีการรับส่งข้อมูลกับ Cloudflare ผ่าน HTTP ในขณะที่ User ทั่วไป จะได้กุญแจดอกเขียวเมื่อดูผ่าน Cloudflare ครับ
ด้วยตัวของ WordPress เอง มีสคริปต์บางตัวที่อ้างอิงกับ HTTP Protocol ทำให้เมื่อใช้งานผ่านโหมดนี้ จะมีการใช้งานได้ไม่สมบูรณ์เพราะว่า Javascript ที่ถูกเรียกแบบ HTTP ในหน้า HTTPS จะไม่ถูกรันขึ้นมาทำงาน ด้วยเหตุผลด้านความปลอดภัย ซึ่งเป็นในทุก Browser ครับ
การแก้ปัญหาส่วนหนึ่ง สามารถแก้ไขได้ด้วยการดาวโหลดปลั๊กอินของ WordPress ที่ Cloudflare ทำขึ้นมา เพื่อทำการเปลี่ยน URL ที่มีการเรียกในโหมด HTTP ให้เปลี่ยนเป็นการเรียกแบบไม่ระบบโปรโตคอลแทน แต่อย่างไรก็ตาม มันก็แก้ปัญหาไปได้เพียงส่วนเดียวเท่านั้น เท่าที่ผมทดสอบ พบว่ายังคงมีปัญหาอยู่ในส่วนของ Admin Control Panel ค่อนข้างเยอะครับ
นอกจากนี้ก็มี Plugin ตัวนี้ที่ต้องติดตั้งเพิ่ม เพื่อแก้ปัญหาไว้ชั่วคราวด้วยครับ เนื่องจากสคริปต์ตัวนี้ มีการเรียกใช้ผ่าน HTTP ซึ่งส่งผลต่อกุญแจเช่นเดียวกัน
เอาหละครับ เท่านี้ก็พอถูไถใช้งาน WordPress แบบ SSL Flexible ไปได้แล้วหละครับ
ทางเลือก
นอกจากจาก Cloudflare แล้ว จริงๆ WP Super Cache Plugin ก็เป็นที่นิยมครับ จุดที่แตกต่างกันก็คือ สำหรับ Cloudflare นั้นจะมี CDN กระจายอยู่ทั่วโลก ดังนั้น เมื่อคนเข้าเว็บไซต์เราผ่าน Cloudflare จะเพิ่มความเร็ว สำหรับคนที่กระจายๆ กันอยู่ทั่วโลก เพราะว่าสามารถดึงข้อมูลจากเซิร์ฟเวอร์ที่อยู่ใกล้ได้เลย ในขณะที่ WP Super Cache นั้น เป็นการทำ Caching บนเซิร์ฟเวอร์ของเราเอง ดังนั้น การเข้าถึงข้อมูล สำหรับคนจากที่ต่างๆ ยังต้องเข้าผ่านเซิร์ฟเวอร์ของเราโดยตรงอยู่ครับ
จริงๆ Cloudflare ยังมีของเล่นอีกหลายอย่าง เพียงแต่ Free plan นั้น มีของเล่นอยู่ค่อนข้างจำกัด ถ้าท่านใดได้เล่นในแพลนอื่นๆ มาเล่าสู่กันฟังบ้างนะครับ