ข่าว: ข่าวประกาศ

  • 08 พฤษภาคม 2024, 09:52:57

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - ghostmaster

หน้า: [1]
1
             คงจะมีหลายท่านที่เซ็ต 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)
ที่ดีจึงยังเป็นทางออกที่เหมาะสมกว่าอยู่

          แล้วพบกันใหม่ครับ ;D       


2
          เรื่องการเก็บแคชของ squid หัวใจหลักเลยคือ refresh_pattern ถ้าเราเซ็ตได้อย่างเหมาะสม
เราสามารถเก็บข้อมูลที่วิ่งผ่าน squid ได้เกือบหมด รวมถึงแพชของเกมส์ต่างๆ ที่อัพเดตผ่านโปรโตคอล http ทั้งหมดด้วย
ถ้าเราเข้าใจหลักการทำงานของ squid ที่ใช้ในการตรวจสอบความใหม่เก่าของข้อมูล เพื่อตัดสินใจว่าไฟล์ไหนเก่า
ต้องโหลดใหม่ หรือไฟล์ไหนจะส่งให้จากแคชที่เก็บไว้ เราก็จะสามารถนำมาปรับแต่ง refresh_pattern ได้
โดยไม่ต้องมีบรรทัด no_cache / cache เลยก็ได้ครับ
         ส่วน mime.conf ที่คนส่วนใหญ่(เผยแพร่กันในหมู่ร้านเน็ตเมืองไทย) เป็นการเซ็ตให้เก็บแพชนั้น
ไม่เกี่ยวข้องโดยตรงครับ ตัวไฟล์ mime.conf เป็นไฟล์ที่ใช้กับโปรโตรคอลที่ไม่ระบุลักษณะของข้อมูลที่ส่งมา
เช่น ftp (มันส่งมาสองแบบ binary หรือ ascii) ที่ไม่ระบุลักษณะไฟล์ว่าประเภทใด mime.conf จะช่วยระบุลักษณะ
และไอค่อนเพื่อการแสดงผลลักษณะข้อมูลให้ browser แสดงผล ในกรณีเรียกใช้โปรโตคอลจำพวกนี้
ส่วน http นั้นส่ง Content-Type มากับ http header เป็นปริยายจึงไม่มีการใช้ไฟล์ mime.conf เลยครับ
          เดี๋ยวว่างๆมาคุยกันต่อครับ :D

หน้า: [1]