mod_qos จะเป็นตัวช่วยทำให้ Apache ทำงานตามเงื่อนไขของเราได้มากขึ้น เนื่องจาก Apache ไม่สามารถ config เกี่ยวกับ Policy ได้มากเท่าไรเช่น SrvMaxConnPerIP คือ การจำกัดจำนวนการเชื่อมต่อมาที่ Http server เช่น 1 ไอพี สามารถเชื่อมต่อกับ Apache ได้ 5 Connections ซึ่งโดยปกติ Apache อย่างเดียวไม่สามารถทำได้ จึงจำเป็นต้องติดตั้ง Mod เพิ่มเติมให้กับ Apache เพื่อให้เราสามารถกำหนด Rule หรือ Policy ให้กับ Apache ได้มากขึ้นครับ
และวิธีติดตั้งวันนี้ผมก็ได้เลือกใช้ mod_qos ตัวล่าสุด ที่ตอบโจทย์ที่ต้องการ จาก http://opensource.adnovum.ch/mod_qos/ เข้าไปชมกันได้ครับ
มาดูวิธีการติดตั้ง mod_qos กันครับ
ดาวน์โหลด mod_qos
cd /usr/local/directadmin/custombuild
wget http://iweb.dl.sourceforge.net/project/mod-qos/mod_qos-10.13.tar.gz
ทำการแยกไฟล์และเข้าไปยังห้องเก็บ config ต่างๆ เพื่อ compile สำหรับ apache 2 บน DirectAdmin ปกติจะได้ Apache 2 มาอยู่แล้ว
tar -zxvf mod_qos-10.13.tar.gz
cd mod_qos-10.13/apache2
เริ่มต้น compile โดยสั่งตามนี้ครับ
apxs -cia mod_qos.c
ถ้าไม่เจออะไรผิดพลาดจะเจอข้อความล่าสุดประมาณนี้
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib/apache/mod_qos.so
[activating module `qos' in /etc/httpd/conf/httpd.conf]
หลังจาก compile script เสร็จ ระบบจะทำการเพิ่ม Module ให้ทันทีที่ /etc/httpd/conf/httpd.conf เข้า
ไปเช็คกันด้วยครับ
ถ้าไม่เจอให้เอา
LoadModule qos_module /usr/lib/apache/mod_qos.so
ไปไว้ได้บรรทัดที่มีคำว่า Listens ครับ
ต่อไปคือ config mod_qos ครับ ในที่นี้ขอไม่อธิบายวิธี config ให้ครับคือจะมีให้อยู่แล้วแนะนำให้ศึกษาเองที่เว็บผู้พัฒนาครับ
## QoS Configure
# handles connections from up to 50000 different IPs
QS_ClientEntries 50000
# will allow only 8 connections per IP
QS_SrvMaxConnPerIP 8
# maximum number of active TCP connections is limited to 256
MaxClients 100
# disables keep-alive when 70% of the TCP connections are occupied:
QS_SrvMaxConnClose 50
# minimum request/response speed (deny slow clients blocking the server, ie. slowloris keeping connections open without requesting anything):
QS_SrvMinDataRate 10 600
# and limit request header and body (carefull, that limits uploads and post requests too):
# LimitRequestFields 30
# QS_LimitRequestBody 102400
เอามาจาก howtoforge.com อีกทีขอให้ปรับแต่งตามความต้องการของแต่ละคนนะครับ
ให้นำเอา config ของแต่ละท่านไปไว้บรรทัดสุดท้ายของไฟล์ /etc/httpd/conf/extra/httpd-includes.conf
หลังจากนั้นสั่ง restart service
service httpd restart
เป็นอันเสร็จครับ
จากนั้นให้ดูผลการติดตั้งที่ server status reports ของ apache ซึ่งต้องใช้ mod_status
ปกติจะติด ตั้งมาแล้วแต่ยังไม่เปิดใช้งาน ยังไงก็หาวิธีเปิดเองก่อนนะครับเพราะยังไม่ได้เขียนวิธีลงไว้
Thank you.
เก่งๆ มีสาระ