ผู้ใช้งานหลายๆท่านคงเคยประสบปัญหาการทำเว็บไซต์ เมื่อเรียกใช้งานขึ้นมาแล้วพบว่าเว็บไซต์ของท่าน มีการดาวน์โหลดหน้าเว็บไซต์นานกว่าปกติ หลายๆท่านเคยทดสอบประสิทธิภาพความเร็วของเว็บไซต์ด้วย tools ต่างๆ ก็จะพบคำแนะนำที่ช่วยให้การเข้าใช้งานเว็บไซต์มีประสิทธิภาพเร็วยื่งขึ้น ซึ่งในบทนี้เราจะแนะนำวิธีการกำหนดค่า leverage Browser Caching ซึ่งการใช้เบราว์เซอร์แคชจะทำให้เบราว์เซอร์สามารถเก็บข้อมูลบางอย่างไว้ และให้โหลดโดยตรงจากแคชแทนการเรียกข้อมูลจากเซิร์ฟเวอร์ สำหรับผู้ที่เข้าใช้งานเว็บไซต์ซ้ำๆ ซึ่งจะสามารถช่วยลดเวลาในการโหลดหน้าเว็บไซต์ และยังช่วยให้ใช้งานแบรนด์วิธน้อยกว่าเดิมอีกด้วย
วิธีการใช้ leverage browser caching
วิธีการใช้ leverage browser caching กับเซิร์ฟเวอร์ของท่าน จะมีสองวิธีที่จะใช้ประโยชน์จาก leverage browser caching บนเซิร์ฟเวอร์ โดยวิธีที่ท่านเลือกจะขึ้นอยู่กับว่าเว็บเซิร์ฟเวอร์ที่ท่านใช้นั้นใช้งานเป็น Nginx หรือ Apache นั่นเอง
ในการเปิดใช้งาน leverage browser caching ท่านจะต้องตั้งค่า Cache-Control headers และเปิดใช้งาน mod_expires เพื่อกำหนดวันหมดอายุสำหรับไฟล์บางประเภท โดยผู้ใช้ส่วนใหญ่จะทำการเพิ่มโค้ดลงไปที่ไฟล์ .htaccess บนโฮสติ้ง / เซิร์ฟเวอร์ของท่าน ซึ่งไฟล์ .htaccess จะสามารถกำหนด config ต่างๆสำหรับเว็บไซต์ของท่านได้ ทั้งเว็บเซิร์ฟเวอร์ Apache และ Nginx
วิธีการ config ค่านั้นเราจะต้องดูว่าไฟล์ชนิดใดที่เราต้องการทำการแคช อาทิ เช่น favicon.ico / images : jpg, gif, png / javascript / css เป็นต้น จากนั้นมาตรวจสอบระยะเวลาในการเก็บข้อมูลในแคช อาทิ เช่น ไฟล์ที่ไม่มีการแก้ไขบ่อยครั้ง สามารถกำหนดระยะเวลาหมดอายุไว้ยาวนานขึ้นได้ ตัวอย่างเช่น 1 years ส่วนไฟล์ใดที่มีการแก้ไขข้อมูลบ่อยครั้ง ควรกำหนดระยะเวลาหมดอายุไว้ไม่นาน ตัวอย่างเช่น 1month , 1 week เป็นต้น
จากนั้นเรามาเริ่มทำการเพิ่ม config ที่ไฟล์ของท่านกันเลย โดยเราจะแนะนำการเพิ่มค่าของทั้ง Apache และ Nginx
Cache-Control Headers บน Nginx : ให้ทำการเพิ่ม config ต่อไปนี้ลงในเซิร์ฟเวอร์ของท่านโดยค่า default จะอยู่ที่ path /etc/nginx/site-enabled/default
location ~* \.(png|jpg|jpeg|gif)$ { expires 365d; add_header Cache-Control "public, no-transform"; } location ~* \.(js|css|pdf|html|swf)$ { expires 30d; add_header Cache-Control "public, no-transform"; }
Cache-Control Headers บน Apache : ให้ทำการเพิ่ม config ต่อไปนี้ที่บรรทัดบนสุดของไฟล์ .htaccess ของท่าน
<FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Cache-Control "max-age=2592000, public" </FilesMatch>
หมายเหตุ :
Header set Cache-Control : ส่วนกำหนดค่าส่วนหัว
max-age : = 2592000 วินาที (30 วัน) ซึ่งระบุไว้ว่าควรเก็บแคชไว้นานเท่าใด ค่าดังกล่าวคือค่าต่ำสุดที่สามารถกำจัดคำเตือนได้ หากตั้งค่าวันหมดอายุน้อยกว่านี้ท่านจะเห็นคำเตือนของเบราว์เซอร์ยังคงอยู่
public : ระบุว่าเป็นข้อมูลสาธารณะ
Expires Headers บน Nginx : ให้ทำการเพิ่ม config ต่อไปนี้ลงในเซิร์ฟเวอร์ของท่านโดยค่า default จะอยู่ที่ path /etc/nginx/site-enabled/default
location ~* \.(jpg|jpeg|gif|png)$ { expires 365d; } location ~* \.(pdf|css|html|js|swf)$ { expires 30d; }
Expires Headers บน Apache : ให้ทำการเพิ่ม config ต่อไปนี้ที่บรรทัดบนสุดของไฟล์ .htaccess ของท่าน
## EXPIRES CACHING ## <IfModule mod_expires.c> ExpiresActive On ExpiresByType text/css "access 1 month" ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/html "access 1 month" ExpiresByType text/x-javascript "access 1 month" </IfModule> ## EXPIRES CACHING ##
โดย config ด้านบนจะกำหนดว่าจะใช้แคชและระยะเวลาในการจำค่าเท่าใด ยกตัวอย่าง เช่น
ExpiresByType text/css "access 1 month"
จะเป็นการแคชไฟล์ css โดยเก็บไว้ 1 เดือน เนื่องจากมีการแก้ไขอยู่บ่อยครั้ง ซึ่งควรเพิ่มลงในส่วนบนสุดของไฟล์ .htaccess จากนั้นทำการบันทึกไฟล์ .htaccess และรีเฟรชหน้าเว็บไซต์ของท่าน
หลังจากทำการ config ที่ไฟล์ .htaccess เรียบร้อยแล้วสามารถทดสอบได้ดังนี้
เพียงเท่านี้ก็จะสามารถใช้งาน leverage browser caching ได้แล้วนะคะ ทาง HostPacific หวังว่า leverage browser caching จะเป็นการเก็บแคชของเบราว์เซอร์ ที่จะชวยทำให้เว็บไซต์ของท่านมีประสิทธิภาพในการเรียกใช้งานได้ไวมากยิ่งขึ้น