[Ruk-Com] การตั้งค่าระบบ Cache ของ Wordpress (ฉบับใช้งานจริง)



Screen Shot 2559-09-07 at 1.24.17 PM
 

บทความนี้จะมาบอกว่าทำไมในการทำเวปไซต์ด้วย Wordpress จำเป็นต้องทำ Caching ทำแล้วช่วยอะไรได้

Wordpress เป็น CMS ที่ค่อนข้างใหญ่และมีโครงสร้างซับซ้อน ในการ query หรือค้นหาข้อมูลมาแสดงหน้าเวปแต่ละครั้งจะผ่าน function ต่างๆเยอะแยะมากมาย หากคนเข้าเวปน้อยๆก็จะยังไม่เห็นปัญหาแต่ถ้ามีการใช้งาน (realtime) หลักพันหรือหลักหมื่น หากไม่มีระบบ Cache เข้ามาช่วย เซิฟเวอร์แรงแค่ไหนก็เอาไม่อยู่ครับ

Plugin ที่บริหารจัดการ Caching ของ Wordpress มีมากมายในท้องตลาดแต่ที่ทาง Ruk-Com เลือกใช้ให้กับลูกค้าและเราได้ทดสอบเป็นอย่างดีแล้วว่าถ้าเราตั้งค่าอย่างถูกต้องก็จะสามารถใช้งานได้เต็มประสิทธิภาพของเซิฟเวอร์ นั่นคือ WP Super Cache ด้วยการตั้งค่าที่ง่ายและ Plugin ไม่มีความซับซ้อนมาก

12814531_1231587550204345_3731241226125427201_n

screen-shot-2559-09-21-at-4-15-30-am  
จากที่เราได้มีการทดสอบให้กับลูกค้า VPS ของเราโดยใช้ Memory ประมาณ 4GB เท่านั้นสามารถรับทราฟฟิกได้หลักล้าน UIP ต่อวันได้สบายๆ (ในส่วนนี้ต้องมีการปรับแต่ง Web Server เพิ่มเติมหรือเรียกว่าการทำ Performance Tuning)  



ขั้นตอนการตั้งค่า WP Super Cache

ปรับแต่ง permalink เพื่อให้รองรับกับการ cache ด้วย mod_rewrite

screen-shot-2559-09-21-at-3-45-52-am

เพื่อให้การตั้งค่าได้ถูกต้องแนะนำให้เลือก Plan แล้วกด Save หลังจากนั้นลบไฟล์ .htaccess ทิ้ง แล้วค่อยเลือก Custom Structure (ตามภาพด้านบน) ในที่นี้ผมอยากให้ URI ของเวปไซต์สั้นๆ เลยตั้งค่าแค่ /%post_id%  หรือใครชอบให้มีหัวข้อของเนื้อหาอยู่ในบทความก็อาจจะตั้งเป็น /%postname% ก็แล้วแต่ความชอบและความเชื่อหรือเทคนิคเกี่ยวกับ SEO ครับ ^ ^


ต่อไปติดตั้ง Plugin WP Super Cache

screen-shot-2559-09-21-at-3-31-55-am

เปิดใช้งาน cache



โดยทำการตั้งค่าดังนี้




แนะนำให้เลือกเป็น expert เพื่อเปิดใช้งาน mod_rewrite เพราะเป็น mode ที่ทำงานได้เร็วที่สุด


screen-shot-2559-09-21-at-3-52-31-am


screen-shot-2559-09-21-at-3-52-52-am
screen-shot-2559-09-21-at-3-53-01-am

หลักๆให้เลือกที่ทาง Plugin Recommended มาครับและเพิ่มในส่วนของการให้ Clear Cache เมื่ออัพเดทบทความใหม่ ส่วนค่าที่เหลือสามารถใช้งาน Default ได้เลยครับ เสร้จแล้วกด update mod_rewrite rule ตามภาพด้านล่าง


screen-shot-2559-09-21-at-4-07-53-am  


หลังจากติดตั้ง Plugin เสร็จแล้วแนะนำเพิ่มเติมคือให้ทำการตั้งค่าไม่ให้ Wordpress เรียก 404.php ของ Themes เพราะในส่วนนี้จะไม่ cache และส่วนใหญ่โดย default ของ Themes จะมีการ query ทั้ง header, menu , widget  เป็นจำนวนมาก ลองเข้าไปดู 404.php ของ Themes ที่ใช้ได้ที่

Appearance -> Editor -> 404.php ปกติผมจะทำการลบ Code ในนี้ด้วยและใส่เพียงแค่

<?="404 not found"; ?>

และแก้ไข .htaccess ไม่ให้มีการ execute ไฟล์ใน wp-content โดยเพิ่มบรรทัดสีแดงเข้าไปดังนี้

screen-shot-2559-09-21-at-4-10-09-am

ในส่วนของการติดตั้ง Cache ก็เรียบร้อยแล้วครับ

เพิ่มเติมให้อีกนิดครับในบาง Themes จะมีการส่งค่า POST ไปที่ admin-ajax.php ตลอดเวลาเท่ากับว่าทุกๆ 1 request จะมีการส่งค่าเข้าไปให้ Web Server ประมวลผลเป็นจำนวนมากทำให้กินทรัพยากรเซิฟเวอร์ เราแก้ไขได้ด้วยการติดตั้ง Plugin Heartbleed Control  และตั้งค่าตามนี้ได้เลยครับ

screen-shot-2559-09-21-at-4-29-52-am

ภาพตัวอย่างการส่ง POST request จำนวนมาก หาก Themes หรือ Plugin บางตัวมีการเรียก heartbeat API

screen-shot-2559-09-21-at-4-22-26-am
 


เพิ่มเติม
คำตอบนี้มีประโยชน์หรือไม่? 1 Users Found This Useful (1 Votes)