ตัวอย่างการติดตั้งและคอนฟิก Squid Cache แบบเร็ว

การติดตั้งและการคอนฟิกในที่นี้ผมขอเสนอเป็น 2 แบบคือ

  • การติดตั้งและการคอนฟิกจากไฟล์ประเภท RPM
  • กาติดตั้งและคอนฟิกจากไฟล์ประเภท .tar.gz

โดยในที่นี้ขอเสนอการติดตั้งบน RedHat 9.0 และไม่มีการทำ cache_peer นะครับ
การติดตั้งและการคอนฟิกจากไฟล์ประเภท RPM
ถ้าในตอนติดตั้ง Linux OS ครั้งแรกได้เลือกแพ็คเก็ตของ Squid แล้ว ก็ไม่ต้องติดตั้งอีกนะครับ การตรวจสอบว่าได้ติดตั้ง Squid แบบ RPM ไว้แล้วยัง ก็สามารถทำได้หลายวิธีเช่น :

  • ดูที่ Service Configuration ว่ามี Service ชื่อ Squid อยู่แล้วหรือยัง
  • ใช้คำสั่ง #rpm -q squid เพื่อสอบถาม  ซึ่งถ้ามีการติดตั้งไว้แล้วก็จะบอกมาว่าเป็น Squid เวอร์ชันอะไร แต่ถ้ายังไม่ได้ติดตั้งก็จะบอกว่า "package squid is not installed"

การติดตั้ง Squid แบบ RPM ทำได้สองแบบคือ แบบที่ติดตั้งจาก GUI (X Window) กับแบบใช้คอมมานด์ไลน์
การติตั้งแบบใช้
GUI (X Window)
(ในที่นี้ของเสนอเป็นแบบใช้เมนู Add/Remove Applicatios)
1.ไปที่เมนู System Settings-->Add/Remove Applications
2.ที่หัวข้อ Servers-->Web Server ให้คลิ๊กปุ่ม Details ด้านขวามือ แล้วเลือกรายการ Squid
3.ให้เลือก Update และใส่แผ่นดิสถ์ตามที่บอกมา
การติดตั้งแบบใช้คอมมานด์ไลน์
1.ใสแผ่นดิสก์แผ่นที่ 1
2.
mount ซีดีรอมด้วยคำสั่ง
 #mount /mnt/cdrom
3.เข้าไปยัง directory ของ RPM ด้วยคำสั่ง
#cd /mnt/cdrom/RedHat/RPMS
4.ติดตั้งด้วยคำสั่ง
#rpm -ivh squid-2.5.STABLE1-2.i386.rpm  (ตรงนี้ใช้ปุ่ม Tab ช่วยก็ดีนะครับ)
5.คงจะติดตั้งเสร็จแล้วสิ

การคอนฟิกสำหรับการติดตั้งแบบ RPM
ไฟล์คอนฟิกของ
Squid แบบ RPM ก็คือ /etc/squid/squid.conf เพราะฉะนั้นให้เปิดไฟล์นี้ด้วย Text Editor ใด ๆ แล้วเข้าไปคอนฟิก (แบบเร็ว) ซึ่งการคอนฟิกเพื่อให้แค่เครื่อง Client ใช้งาน Proxy ได้ก็แค่เปลี่ยนแปลงค่าที่จุดเดียวคือตรงที่มีข้อความว่า :
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
#http_access allow our_networks
ให้ทำการใส่ค่า
(หรือแก้ไข) ค่า network ที่ไช้งานในบรรทัด acl ซึ่งค่า default เป็น 192.168.1.0/24 192.168.2.0/24 ให้เป็นค่า network ของตัวเองซึ่งถ้ามีหลาย network ก็ให้ใช้ space แยกระหว่างกัน
จากนั้นก็ให้เอาเครื่องหมาย
# ของทั้งสองบรรทัดออกซึ่งอาจจะเป็นดังนี้
acl our_networks src 192.168.1.0/24 192.168.2.0/24
http_access allow our_networks
แล้วให้
start บริการ squid ด้วยคำสั่ง :
#service squid start
หรือถ้า service มีการ start แล้วก็ให้ใช้คำสั่ง :
#squid -k reconfigure
เพื่อให้การคอนฟิกที่ทำใหม่มีผล
การติดตั้งและการคอนฟิกจากไฟล์ประเภท tar.gz
1. ดาวน์โหลดโปรแกรม Squid จาก http://www.squid-cache.org ซึ่งควรเลือกเวอร์ชัน stable ที่ล่าสุด
2. ในที่นี้ผมดาวโหลดมาไว้ที่ /root ชื่อไฟล์เป็น /root/squid-2.5.STABLE4.tar.gz
3. ให้เปลี่ยนไดเร็คทอรี่ไปอยู่ที่ /root
4. แตกไฟล์ออกมาด้วยคำสั่ง :
   #tar xvfx squid-2.5.STABLE4.tar.gz
5. จากข้อ 3 จะมีการสร้าง directory ชื่อ squid-2.5.STABLE4 ขึ้นมา ให้เปลี่ยนตำแหน่งเข้าไปอยู่ในตำแหน่งดังกล่าวด้วยคำสั่ง:
   #cd squid-2.5.STABLE4
6.การ build และติดตั้งโปรแกรมให้ทำดังนี้ :
   #./configure --prefix=/usr/local/squid
   #make all
   #make install
7.เมื่อติดตั้งไม่มีปัญหาประการใดก็ให้ไปคอนฟิก squid กันก่อนซึ่งไฟล์คอนฟิกจะชื่อว่า /usr/local/squid/etc/squid.conf ดังนั้นก็ให้เปิดไฟล์นี้ขึ้นมาด้วย text editor ใด ๆ ซึ่งจริง ๆ แล้วจะมีค่าต่าง ๆ สำหรับการคอนฟิกมากมาย  แต่ในที่นี้หัวข้อมีคำว่า "แบบเร็ว" ก็จะกล่าวเฉพาะที่จำเป็นเพื่อที่จะให้สามารถ start squid ได้เท่านั้น
 จากไฟล์คู่มือ QUICKSTART การคอนฟิกเขาบอกว่า ให้เอาเครื่องหมาย # ออกจากหน้าข้อความต่อไปนี้ :
cache_peer, never_direct/always_direct
cache_dir /usr/local/squid/var/cache 100 16 256
acl, http_access, icp_access
cache_mgr
visible_hostname
จริง ๆ แล้ว ไม่ใช้แค่เอา # ออกอย่างเดียวนะครับ ต้องป้อน ค่าที่เหมาะสมเข้าไปด้วย
แต่ถ้าต้องการแบบให้แค่ใช้งานได้ทันทีก็ให้เอาเครื่องหมาย
# หน้าสองบรรทัดต่อไปนี้ออก
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
#http_access allow our_networks
แต่ต้องเปลี่ยนค่า
network ในบรรทัด acl ให้ตรงกับ network ของตัวเอง  ซึ่งถ้ามีหลาย network ก็ให้คั่นด้วย space
8.เมื่อแก้ไขคอนฟิก (squid.conf) เสร็จแล้วก็ให้ทำการสร้าง cache และตำแหน่งของ cache โดยตำแหน่งของ cache จะอยู่ที่ /usr/local/squid/var/cache  โดยไดเร็คทอรี่ cache ในตอนนี้จะยังไม่มี แต่จะถูกสร้างขึ้นเมื่อเรารันคำสั่งต่อไป คือ squid -z  เนื่องจากคำสั่ง squid -z จะมีการสร้าง cache ภายใต้ /etc/local/squid/var  ดังจะสามารถสร้างได้ก็ต่อเมื่อตำแหน่งนี้มี permission ที่สามารถให้ทำหาร write ได้  ฉะนั้นก่อนที่จะใช้คำสั่ง squid -z ก็ต้องทำการเปลี่ยน permision ของ /etc/usr/squid/var ให้สามารถ write ได้เสียก่อน ซึ่งถ้ากำหนด permission ไม่ถูกต้องก็อาจจะมีการฟ้องว่า :

FATAL: Failed to make swap directory /usr/local/squid/var/cache: (13) Perssion denied

หรือบางทีอาจจะมีปัญหาเรื่องของ visible_hostname ก็ต้องให้เข้าไปแก้คอนฟิกในส่วนของ visible_hostname ด้วยการใส่ชื่อ hostname เข้าไป  สำหรับการกำหนด permission ก็อาจใช้คำสั่งดังนี้
#chmod 777 /etc/usr/local/var
แล้วทำการสร้าง cache ด้วยคำสั่ง :
#/usr/local/squid/sbin/squid -z
ให้ลองเข้าไปดูที่ตำแหน่งของ /usr/local/squid/var  ดูนะครับจะเห็นว่าจะเกิดไดเร็คทอรี่ cache (และมี directoty ย่อยภายใต้ cache อีกมากมาย)
9. start ให้ squid ทำงานด้วยคำสั่ง :
#/usr/local/squid/sbin/squid