คงจะมีหลายท่านที่เซ็ต offline_mode on หรือ reload_into_ims on ลงใน squid.conf ซึ่งมีผลก็คือ
ทำให้ squid พยายามใช้แคชมากกว่าที่จะโหลดไฟล์ใหม่จากอินเตอร์เน็ต แต่วิธีการเหล่านี้ก็มีข้อเสียตามมาเช่น
1. กรณีที่โหลดไฟล์ไม่สำเร็จ หรือไฟล์ที่โหลดมาเสียหาย และถูกเก็บไว้ในแคช squid จะส่งไฟล์นั้นจากแคชให้ตลอด
จนกว่าไฟล์ในแคชนั้นจะหมดอายุลง ซึ่งอาจจะเป็นวันหรืออาทิตย์ ทำให้ข้อมูลที่เครื่องลูกได้รับผิดพลาดไป
2. เกิดอาการที่ไฟล์ patch เกมส์ต่างๆไม่ยอมอัพเดตให้ทันสมัย squid ส่งไฟล์เดิมที่ยังไม่อัพเดตมาให้ ทำให้เครื่องลูก
ไม่อัพเดต patch ทำให้เข้าเล่นเกมส์ไม่ได้หรือบางกรณีตัวเกมส์เสียหายต้องติดตั้งใหม่
วิธีการแก้ไขการไม่อัพเดตของแคชนี้ทำได้หลายวิธี ส่วนใหญ่มักนิยมลบล้างแคชแล้วสร้างใหม่ ซึงก็ได้ผลแต่ทำให้
ข้อมูลในแคชอื่นๆที่ถูกเก็บไว้ พลอยถุกลบไปด้วย อีกทั้งการทำแบบนี้ ทำให้แคชของ squid ทำงานไม่เต็มที่เท่าที่ควร
แต่วันนี้มาลองดูอีกแนวทางนึงครับ นั่นก็ืคือ การลบข้อมูลออกจากแคชครับ
การลบข้อมูลออกนั้นทำโดยขั้นตอนดังนี้ครับ
1. แก้ไขไฟล์ squid.conf เพิ่มบรรทัดดังต่อไปนี้ เพื่ออนุญาติให้สามารถลบข้อมูลในแคชได้
acl PURGE method PURGE
acl localhost src 127.0.0.1
http_access allow PURGE localhost
http_access deny PURGE
แล้วทำการรีสตาร์ทหรือรีโหลด squid
2. ล็อกอินเข้าไปในเครื่องที่รัน squid หรือรีโมทเข้าไป แล้วรันคำสั่งดังต่อไปนี้
ตัวอย่างsquidclient -m PURGE
http://211.39.137.44/patchhanbit/pangya/season2/ProjectG.exe.zip เพื่อลบแคชที่เก็บไฟล์ ProjectG.exe.zip ที่เป็นแพชไฟล์หนึ่งของปังย่าออก(ข้างบนเป็นตัวอย่างสมมุตินะครับ)
กรณีที่เป็นไฟล์ patch ที่ไม่ยอมอัพเดตลองตรวจสอบจาก access.log ของ squid แล้วนำ url นั้นมาทำการลบครับ
ข้อเสียของวิธีนี้ก็คือ
เราสามารถลบได้ทีละ 1ไฟล์หรือออฟเจ็กเท่านั้น ไม่สามารถลบพร้อมกันเป็นจำนวนมากๆ
จึงเหมาะสำหรับแก้ไขแคชในกรณี ที่จะแก้ไขไม่กี่ไฟล์เท่านั้นครับ ดังนั้นการเซ็ต squid.conf (โดยเฉพาะ refresh_pattern)
ที่ดีจึงยังเป็นทางออกที่เหมาะสมกว่าอยู่
แล้วพบกันใหม่ครับ