squid

Squid เป็น HTTP proxy/cache โอเพนซอร์สยอดนิยม มีการใช้งานอย่างแพร่หลาย โดยล่าสุด Squid ได้ออกรุ่น 3.2.0.7 เป็นรุ่นเบตาในวันที่ 19 เมษายน ที่ผ่านมา ซึ่งในสายการพัฒนาของรุ่น 3.2 นั้น มีเป้าหมายในการปรับปรุง แก้ไขปัญหาเดิมของ Squid รุ่นก่อน รวมไปถึงการเพิ่มความสามารถใหม่เข้ามาในรุ่นนี้ด้วย ความสามารถที่เพิ่มขึ้น และการปรับปรุง สามารถติดตามได้ที่ http://wiki.squid-cache.org/RoadMap/Squid3

แต่เนื่องจากใน Debian ยังไม่มี Squid รุ่น 3.2 ให้ทดสอบ ผมในฐานะผู้ใช้ Squid และพอจะมีความรู้ในการทำ Debian package อยู่บ้าง ก็เลยลองดึง Squid 3.1 จาก Debian มาลองปรับดู เพื่อที่จะ build Squid 3.2 ได้โดยที่คงความสามารถที่ Squid 3.1 ใน Debian มีไว้ ดังนั้น ท่านใดที่ใช้ Squid 3.1 อยู่แล้ว ก็สามารถอัปเกรดเพื่อทดลองใช้งานได้ทันที

ก่อนอื่น ท่านใดที่ยังไม่เคยใช้ DebianClub repository (debclub) ให้เพิ่มเข้าไปในระบบก่อน ตามคำแนะนำใน [debclub "ก้านกล้วย" repository] หลังจากนั้นให้เพิ่ม

deb ftp://ftp.debianclub.org/debclub experimental main

เนื่องจากแพกเกจ squid3 3.2 ยังไม่เคยมีใน Debian มาก่อน ผมเลยถือโอกาสปรับ และสร้าง git repository (http://git.rahunas.org/?p=debian/squid3;a=summary) สำหรับการทำแพกเกจ รวมไปถึงการติดตามการพัฒนาของ Squid 3.2 ไปด้วยในตัว และด้วยเหตุผลนี้ จึงใช้กระบวนการแบบ Debian ในการส่ง Squid3 3.2 เข้าที่ debclub ในส่วนของ experimental distribution ซึ่งสำหรับ Debian แล้ว experimental คือที่ทดสอบ (สนามเด็กเล่น) ของผู้ที่สนใจทดสอบแพกเกจซึ่งใน debclub ก็เช่นเดียวกัน

เริ่มติดตั้ง

# apt-get -t experimental install squid3

หากเป็นการติดตั้งใหม่ Squid3 ก็พร้อมใช้งาน โดยการชี้ proxy มาที่ <server-ip>:3128 ตัวอย่างเช่นทดสอบในเครื่องที่ติดตั้ง Squid3 ก็เพียงชี้มาที่ 127.0.0.1:3128

ส่วนท่านใดที่เคยใช้ Squid3 3.1 มาก่อน ต้องปรับ config file นิดหน่อย

จาก

...

squid เป็นหนึ่งในซอฟต์แวร์ที่มีค่าคอนฟิกเยอะมาก และมีเกร็ดการ fine-tune เยอะแยะไปหมด เพื่อนสมาชิกที่มีประสบการณ์ก็สามารถมาแชร์เป็นวิทยาทานกันได้นะครับ

ผมเองไม่มีประสบการณ์การ fine-tune squid มากนัก แต่เร็ว ๆ นี้ ได้ไปเจอ เคล็ดวิชา refresh pattern มา และใช้ได้ผลพอประมาณ เลยเอามาเล่าสู่กันฟัง

refresh pattern เป็นตัวกำหนดว่าจะให้อะไรเก่าอะไรใหม่สำหรับแคชและการตอบกลับ ซึ่งโดยหลักการแล้ว คุณควรจะให้ squid เชื่อตาม HTTP header ต่าง ๆ ที่เว็บเซิร์ฟเวอร์ตอบกลับมา ว่าอะไรเก่าอะไรใหม่ขนาดไหน แต่โชคไม่ดีที่ค่าต่าง ๆ เหล่านี้มักตอบมาตามค่า default ของเว็บเซิร์ฟเวอร์ ซึ่งไม่ช่วยอะไรนักสำหรับการทำแคช ดังนั้น การปรับ refresh pattern จึงช่วยได้ในเรื่องนี้

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้