proxy

ทำแคชให้ apt ด้วย approx

approx เป็นซอฟต์แวร์ที่ใช้เก็บแพกเกจ deb ที่ apt จะมาเรียกไปติดตั้ง ใครมีเครื่องลินุกซ์ที่ใช้แพกเกจ apt ในหน่วยงานตั้งแต่สองเครื่องขึ้นไป ควรติดตั้งไว้ที่เครื่องเซิร์ฟเวอร์เป็นอย่างยิ่ง

จากการทดลองใช้งานพบว่า ช้ากว่า apt-proxy (ซึ่งช่วงหลังมีปัญหาตายบ่อยมาก) แต่เสถียรกว่าเยอะ ใช้พอร์ต 9999 เป็นพอร์ตเดียวกับ apt-proxy ทำให้ปรับใช้แทน apt-proxy ได้อย่างง่ายดาย

ปรับ refresh pattern เพิ่มอัตรา hit ของ squid

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

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

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

ทำ DNS proxy ด้วย pdnsd

ในการเชื่อมต่อ LAN เข้ากับอินเทอร์เน็ต นอกจากจะมี เกตเวย์ แล้ว ก็อาจจะตั้ง DNS server ไว้ใช้ในเครือข่ายด้วย เพื่อลดปริมาณการ query ออกข้างนอก ซึ่งทางเลือกก็มีหลายทาง เช่น ใช้ bind หรือ dnsmasq โดย bind นั้นเป็น DNS server แบบเต็มตัว ส่วน dnsmasq เป็น caching DNS อย่างเดียว แต่บทความนี้จะเสนออีกทางเลือกหนึ่ง คือ pdnsd

pdnsd เป็น caching DNS เหมือน dnsmasq แต่ที่ต่างคือ มันจะเก็บแคชลงดิสก์ด้วย ในลักษณะเดียวกับที่ squid ทำกับ HTTP ทำให้ในระบบที่ไม่ได้เปิดเซิร์ฟเวอร์แบบต่อเนื่อง 24 ชั่วโมง ยังสามารถใช้แคชข้ามวันได้ รวมทั้งสามารถใช้ DNS จากแคชไปพลางได้ในวันที่ DNS ของ ISP มีปัญหาได้ด้วย (ซึ่งเจอบ่อยสำหรับ ISP บ้านเรา ผมเคยแก้ปัญหาด้วยการ hard code IP ต่าง ๆ ที่เข้าบ่อยเก็บไว้ใน /etc/hosts แต่ไม่ต้องแล้ว ถ้าใช้ pdnsd)

ติดตั้งกันเลย

ipmasq กับการทำ transparent proxy

ตามที่ติดค้างไว้ใน ตอนที่แล้ว เกี่ยวกับการทำ internet gateway ด้วย ipmasq ว่าจะพูดถึงการทำ transparent proxy นะครับ ซึ่งก็ไม่ยากอย่างที่คิด

หลักการคือ ให้ส่งต่อแพ็กเก็ตจากเครื่องภายในที่ติดต่อไปยังพอร์ต 80 ให้ไปที่พอร์ตของ HTTP proxy (เช่น 3128 หรือพอร์ตอื่นตามแต่กำหนดขณะติดตั้งพร็อกซี) เพื่อที่การติดต่อเว็บจากเครื่องในเครือข่ายภายใน จะได้ผ่านพร็อกซีเสมอ โดยไม่ต้องตั้งค่าพร็อกซีอีก

เริ่มจากติดตั้ง squid proxy ก่อน

# aptitude install squid

แล้วตั้งค่า squid ตามปกติ อาจจะทดสอบการทำงานของพร็อกซี โดยเปิดเว็บเบราว์เซอร์ในเครื่องลูก แล้วตั้งค่าพร็อกซีก่อนเปิดเว็บต่าง ๆ ดูก่อน แล้วดู access log ของ squid ที่ /var/log/squid/access.log ว่ามี request เข้ามา

Syndicate content

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