แคชแบบคงที่: มันคืออะไรและทำงานอย่างไร

เผยแพร่แล้ว: 2022-06-30

กลยุทธ์การแคชนั้นยุ่งยาก ดังนั้น Ryan Belisle ผู้จัดการฝ่ายสนับสนุนของเราจึงใช้เวลาในการอธิบายวิธีหนึ่งในการใช้ Static Caching เพื่อส่งมอบไซต์ที่เร็วขึ้น

อ่านต่อเพื่อเรียนรู้:

  • เนื้อหาแคชแบบคงที่คืออะไร?
  • ประโยชน์ของแคชแบบคงที่
  • ข้อจำกัดของการแคชแบบคงที่
  • วิธีการใช้การแคชแบบคงที่
  • วิธีปิดการใช้งานการแคชแบบคงที่

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

กลวิธีหนึ่งในการบีบประสิทธิภาพออกจากไซต์ของคุณในนาทีสุดท้ายคือวิธีการที่เรียกว่าการแคชแบบคงที่

หัวขึ้น! เราไม่แนะนำให้ใช้แนวทางในนาทีสุดท้ายเพื่อรับมือกับการเข้าชมเว็บที่เพิ่มขึ้นอย่างรวดเร็ว นี่คือเมื่อคุณได้ใช้แนวทางปฏิบัติที่ดีที่สุดในการเพิ่มประสิทธิภาพโครงสร้างพื้นฐานหรือแอปของคุณแล้ว และผลลัพธ์ทางการตลาดของคุณเกินความคาดหมาย

เนื้อหาแคชแบบคงที่คืออะไร?

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

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

ประโยชน์ของการแคชแบบคงที่

แม้ว่าการแคชแบบสแตติกแบบพื้นฐานอาจมีผลกระทบอย่างลึกซึ้ง โดยเฉพาะอย่างยิ่งในพื้นที่ต่อไปนี้:

  • ลดค่าใช้จ่าย : แทนที่จะต้องสร้างกระบวนการ PHP เพื่อจัดการคำขอไปยังหน้าต่างๆ บนไซต์ เว็บเซิร์ฟเวอร์จะให้บริการเอกสาร HTML โดยตรงกลับไปยังคำขอบนหน้าที่แคชแบบสแตติก
  • ระบุ "หน้า Landing Page" สำหรับการเข้าชมการคลิกผ่านทั้งหมด : แทนที่จะใช้ทรัพยากรสำหรับใครก็ตามที่เข้าชมหน้าแรกของคุณหรือติดตามลิงก์ไปยัง URL ที่ระบุ หน้านี้จะแสดงหน้าที่แคชไว้โดยค่าเริ่มต้นโดยไม่รบกวนการทำงานปกติสำหรับหน้าอื่นๆ ในไซต์ .

ข้อจำกัดของ Static Caching

ฉันต้องการชี้ให้เห็นว่าการแคชแบบคงที่นั้นมีข้อจำกัดและโดยทั่วไปควรใช้เป็นวิธีการแก้ปัญหาชั่วคราวเท่านั้น โปรดจำไว้ว่า:

  • แคชแบบคงที่คือ: สแตติก การเปลี่ยนแปลงใด ๆ ที่ทำกับไซต์จะไม่ปรากฏในหน้าที่แคชในลักษณะนี้
  • ข้อมูลเช่น "สินค้าในรถเข็น" หรือข้อมูลอื่นๆ ที่จัดเก็บไว้ในไฟล์เซสชันของลูกค้าของคุณจะไม่ทำงานบนหน้าเหล่านี้

วิธีการใช้ Static Caching

แม้ว่าจะมีวิธีต่างๆ สองสามวิธีในการใช้การแคชแบบคงที่ ต่อไปนี้เป็นขั้นตอนพื้นฐานในการดำเนินการด้วยตนเอง:

1. ลงชื่อเข้าใช้เซิร์ฟเวอร์ของคุณด้วย SSH

2. สร้างไดเร็กทอรีแยกต่างหากในเว็บรูทของคุณเพื่อจัดเก็บเอกสาร HTML ที่ใช้ในแคชแบบคงที่

3. ใช้ cURL หรือ Wget ส่งคำขอไปยังหน้าเป้าหมายและจัดเก็บไว้ในไดเรกทอรีภายใต้ชื่อ URI ที่เกี่ยวข้อง (ดัชนี ผลิตภัณฑ์ ฯลฯ)

4. เพิ่มการเขียนซ้ำที่ด้านบนของไฟล์ .htaccess ของคุณเพื่อเปลี่ยนเส้นทางคำขอไปยังไฟล์แคชแบบคงที่ เช่น:

[รหัส]
RewriteCond %{REQUEST_URI} ^/?example_category$ [NC]
RewriteRule .* https://www.domain.tld/static/example_category.html [R=302,L]
[/รหัส]

หรือคุณอาจเขียนสคริปต์เพื่อจัดการกับกระบวนการนี้ก็ได้ ตัวอย่างด้านล่างช่วยให้คุณสร้างไฟล์ที่มี URL แยกกันในแต่ละบรรทัด URL เหล่านี้จะถูกอ่านเพื่อสร้างแคชแบบคงที่ของคุณ:

[รหัสภาษา =”ทุบตี”]
#!/bin/bash
# การตรวจสอบอาร์กิวเมนต์พื้นฐาน
ถ้า [ “$#” -ne 2 ]; แล้ว
echo -e “ต้องส่งสองอาร์กิวเมนต์ไปยังสคริปต์\n\nการใช้งาน: ./nexcess_static_cache_helper.sh โดเมน url_list_file\n”
ทางออก 1
fi
# รับข้อมูลเกี่ยวกับโดเมน
โดเมน=$1
pages_file=$2
# สร้างไดเร็กทอรีสำหรับเพจสแตติกในไดเร็กทอรีปัจจุบัน
cache_dir=./static_cache
ถ้า ! [[ -d $cache_dir ]]; แล้ว
mkdir $cache_dir
fi
# ดาวน์โหลดหน้าสแตติกเป็นไฟล์ HTML
URL_list=$(cat $pages_file)
สำหรับ URL ใน $URL_list; ทำ
request_uri=$(echo $URL | cut -d/ -f 4-)
ถ้า [[ -z “$request_uri” ]]; แล้ว
cache_page_name=”ดัชนี”
request_uri=”/”
อื่น
cache_page_name=$(echo $request_uri | perl -pe 's,/|\.,_,g')
fi
wget -q $URL -O $cache_dir/$cache_page_name.html
echo “$request_uri $cache_page_name” >> $HOME/temp_url.file
เสร็จแล้ว
# จัดรูปแบบบล็อกสำหรับ htaccess
echo -e “############”
echo -e “# START: การเขียน URL แคชแบบคงที่ที่สร้างขึ้นใหม่เมื่อ $ (วันที่)”
echo -e “############”
echo -e "เปิด RewriteEngine"
cat $HOME/temp_url.file | ในขณะที่อ่านหน้า uri; ทำ
echo “RewriteCond %{REQUEST_URI} ^/?${uri}$ [NC]\n”
echo “RewriteRule .* https://www.${domain}/static_cache/$page [R=302,L]\n”
เสร็จแล้ว
echo -e “######”
echo -e “# END: การเขียน URL แคชแบบคงที่ที่สร้างขึ้นใหม่เมื่อ $ (วันที่)”
echo -e “######”
rm $HOME/temp_url.file
[/รหัส]

ในการใช้สคริปต์ข้างต้น:

1. ไปที่เว็บรูทของไซต์ของคุณ จากนั้นสร้างไฟล์ชื่อ cache_list.txt หรืออะไรก็ได้ที่คุณต้องการ

2. เปิดไฟล์ เพิ่ม URL สำหรับแต่ละหน้าที่ต้องการให้แคชแบบคงที่ โดยใช้บรรทัดใหม่สำหรับรายการ URL แต่ละรายการ ควรมีลักษณะดังนี้:

[รหัส]
https://www.example.com/
https://www.example.com/sale
https://www.example.com/products
[/รหัส]

บันทึกไฟล์ จากนั้นสร้างไฟล์ด้วยสคริปต์ด้านบน และบันทึกเป็น nexcess_static_cache_helper.sh หรือชื่ออะไรก็ได้ที่คุณต้องการ

ทำให้ไฟล์ปฏิบัติการได้:
[รหัส]chmod +x nexcess_static_cache_helper.sh[/code]

เมื่อพร้อมแล้ว ให้รันสคริปต์ แต่แทนที่ ใช้ชื่อไฟล์ของคุณเองและชื่อโดเมนจริง:
[รหัส]./nexcess_static_cache_helper.sh example.com cache_list.txt[/code]

สิ่งนี้จะสร้างไดเร็กทอรี static_cache ภายใต้ webroot ของคุณที่มีเอกสาร HTML ที่จะใช้สำหรับสแตติกแคช นอกจากนี้ เทอร์มินัลของคุณจะแสดงเอาต์พุตที่คล้ายกับ:
[รหัส]
##########
# START: การเขียน URL แคชแบบคงที่ที่สร้างขึ้นในวันจันทร์ที่ 18 ก.ย. 15:49:11 EDT 2017
##########
RewriteEngine บน
RewriteCond %{REQUEST_URI} ^/?/$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/index [R=302,L]\n
RewriteCond %{REQUEST_URI} ^/?sale$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/sale [R=302,L]\n
RewriteCond %{REQUEST_URI} ^/?products$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/products [R=302,L]\n
######
# END: การเขียน URL แคชแบบคงที่ที่สร้างขึ้นในวันจันทร์ที่ 18 ก.ย. 15:49:11 EDT 2017
######
[/รหัส]

คัดลอกบล็อกด้านบนแล้ววางที่ด้านบนของไฟล์ .htaccess สำหรับไซต์ ซึ่งโดยทั่วไปควรอยู่ในไดเร็กทอรีปัจจุบันของคุณ

ตอนนี้ควรเปิดใช้งานแคชแบบคงที่ ด้วยจิตวิญญาณของการดูแลทำความสะอาดที่ดี ให้ลบไฟล์ที่เราสร้างในขั้นตอนก่อนหน้า:
[รหัส]rm nexcess_static_cache_helper.sh cache_list.txt[/code]

วิธีปิดใช้งานการแคชแบบคงที่

หากต้องการปิดใช้งานการแคชแบบคงที่ ให้ลบบล็อกของโค้ดที่อยู่ในไฟล์ .htaccess

นอกจากนี้ หากคุณต้องการสร้างไฟล์ใหม่ ให้เรียกใช้สคริปต์อีกครั้งและจะแทนที่เอกสาร HTML ด้วยเวอร์ชันที่ใหม่กว่า ฉันขอแนะนำให้เปลี่ยนบล็อกโค้ด .htaccess ด้วย เพียงเพื่ออัปเดตการประทับเวลาเพื่อใช้อ้างอิงในอนาคต

คุณรู้แล้วตอนนี้

ตามที่ระบุไว้ก่อนหน้านี้ นี่เป็นเพียงวิธีการชั่วคราวและไม่ควรใช้เป็นกลยุทธ์การเพิ่มประสิทธิภาพหลักของคุณ สำหรับโซลูชันระยะยาว โปรดดูคู่มือการเพิ่มประสิทธิภาพ ติดตั้ง CDN หรือติดต่อทีมสนับสนุนของเราเพื่อสำรวจตัวเลือกเพิ่มเติม เช่น การโฮสต์ Magento, WooCommerce หรือ WordPress

หรือตรวจสอบแพ็คเกจ WordPress ที่มีการจัดการของ Nexcess เพื่อดูว่าคุณจะเพิ่มประสิทธิภาพไซต์ของคุณได้อย่างไร