internet server

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 นิดหน่อย

จาก

...

คือตอนนี้ลง debian แล้ว ลง LAMP และทำเป็น web server แล้ว ช่วยสอนการทำ virtual host ด้วยคับ
ขอบคุณคับ

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

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

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

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

  1. ติดตั้ง Apache2 + OpenSSL
    # aptitude install apache2 openssl
    

    ผ่านขั้นตอนนี้ เราก็ได้ web server ที่คอยบริการ HTML ได้แล้ว แต่จุดประสงค์เรายังไม่ลุล่วง ต้องไปต่อ

  2. ตรวจสอบให้แน่ใจว่า port 443 จะทำงานเมื่อเปิดใช้งานมอดูล SSL ใน Apache2
    # cat /etc/apache2/ports.conf
    Listen 80
    <IfModule mod_ssl.c>
        Listen 443
    </IfModule>
    

    ถ้ามีไม่เหมือนในตัวอย่าง ให้เพิ่มเข้าไป ใน Apache2 รุ่นหลัง ๆ ใน Debian ตั้งค่าดังกล่าวเป็นค่าเริ่มต้นอยู่แล้ว

    หลังจากนั้นก็เปิดใช้งานมอดูล

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