ºìÁªLinuxÃÅ»§
Linux°ïÖú

ͨ¹ýÄÚºËhttpdʵÏÖweb·þÎñ¼ÓËÙ

·¢²¼Ê±¼ä:2006-09-19 13:44:43À´Ô´:ºìÁª×÷Õß:chameleon
Ò»¡¢¼ò½é
¡¡¡¡´Ólinux2.4.13¿ªÊ¼£¬ÔÚNetworking options³öÏÖÁËÒ»¸öÊÔÑéÐÔµÄÑ¡Ï'[ ] Kernel httpd acceleration (EXPERIMENTAL)'£¬Ê²Ã´ÊÇkHTTPdÄØ£¿ËüÊÇÒ»¸öLinux»·¾³ÏµÄweb·þÎñÆ÷¡£kHTTPdºÍÆäËüweb·þÎñÆ÷µÄ²»Í¬Ö®´¦ÔÚÓÚÆäÊÇ×÷ΪÄں˵ÄÒ»²¿·ÖÔËÐÐÔÚLinuxµÄÄÚºËÖÐ(¿ÉÒÔ¿´³ÉÊÇÒ»¸öÉ豸Çý¶¯)¡£

¡¡¡¡kHTTPd½ö½ö´¦Àí¾²Ì¬(»ùÓÚ¾²Ì¬ÎļþµÄ)µÄwebÒ³Ãæ£¬¶ø½«ËùÓеĶÔÓڷǾ²Ì¬ÄÚÈݵÄÇëÇ󴫵ݸøÕý³£µÄÔËÐÐÓÚÓû§¿Õ¼äµÄweb·þÎñÆ÷À´´¦Àí£¬Èçapache¡¢ZeusµÈ£¬¶øÕâЩÔËÐÐÔÚÓû§¿Õ¼äµÄweb·þÎñÆ÷²¢²»ÐèÒªÈκÎÐ޸ġ£

¡¡¡¡¶ÔÓÚ¾²Ì¬webÒ³ÃæµÄhttpÇëÇóµÄ´¦Àí²»ÊÇÒ»¸ö·Ç³£¸´ÔÓ¹ý³Ì£¬µ«ÊÇÕâÈ´ÊÇweb·þÎñÖзdz£ÖØÒªµÄÒ»¸ö²¿·Ö£¬ÒòΪÖÁÉÙÍøÕ¾Öдó¶àÊýͼÐζ¼ÊǾ²Ì¬µÄ£¬¶øÇÒ»¹ÓкܶàhtmlÎļþʱ¾²Ì¬µÄ¡£Ò»¸ö³£¹æµÄweb·þÎñÆ÷¶ÔÓÚ¾²Ì¬Ò³ÃæµÄhttpÇëÇó´¦Àí·Ç³£¼òµ¥£¬½ö½öÊÇ¿½±´¡®Îļþµ½ÍøÂç¡®µÄ¼òµ¥²Ù×÷¡£Èç¹ûÕâЩ²Ù×÷ÔÚÄÚºËÖÐÍê³É½«±äµÃ·Ç³£¸ßЧ¡£ÀýÈçÒ²ÊÇÍê³ÉÀàËÆµÄ¹¦ÄܵÄNFS·þÎñÆ÷Ò²ÊÇÔËÐÐÔÚÄÚºËÖеġ£

¡¡¡¡Í¨¹ýÔÚÄÚºËÖÐʵÏÖwebÇëÇó´¦Àí¼ÓËÙ£¬Í¨³£ÒâÒåµÄweb·þÎñÆ÷£­ÈçapacheµÈÔò¿ÉÒÔרעÓÚ´¦ÀíÄÇЩ¶¯Ì¬webÇëÇó¡£

¡¡¡¡×¢£ºÕâÀïApacheÖ¸´úÈκÎÒ»¸öweb·þÎñÆ÷¡£

¶þ¡¢¿ìËÙÈëÃÅ
1) ±àÒë²¢¼ÓÔØÄ£¿é
2) Èç¹ûÐèÒª£¬Í¨¹ý/proc/sys/net/khttpdÀ´¶ÔÄ£¿é½øÐÐÅäÖÃ
3) echo 1 > /proc/sys/net/khttpd/start

¡¡¡¡Ð¶ÔØ£º

echo 1 > /proc/sys/net/khttpd/stop
echo 1 > /proc/sys/net/khttpd/unload
rmmod khttpd

Èý¡¢ÅäÖÃ
1¡¢²Ù×÷ģʽ

¡¡¡¡ÕâÀïÓÐÁ½ÖÖÍÆ¼ö²Ù×÷ģʽ£º

¡¡¡¡1) 'Apache' ÊÇÖ÷web·þÎñÆ÷£¬kHTTPdÊǸ¨Öúweb·þÎñÆ÷

clientport -> 80
serverport -> 8080 (or whatever)

¡¡¡¡2) kHTTPdÊÇÖ÷web·þÎñÆ÷, 'Apache'ÊǸ¨Öúweb·þÎñÆ÷

clientport -> 8080 (or whatever)
serverport -> 80

2¡¢ÅäÖÃkHTTPd

¡¡¡¡ÔÚÆô¶¯kHTTPd֮ǰÊ×ÏÈÐèÒª¶ÔËü½øÐÐÅäÖá£ÕâÊÇͨ¹ý/procÎļþϵͳÀ´½øÐеģ¬Òò´Ë¿ÉÒÔÔڽű¾ÖÐʵÏÖ×Ô¶¯ÅäÖᣴó¶àÊý²ÎÊýÖ»ÄÜÔÚkHTTPdûÓÐÆô¶¯ÒÔǰ²ÅÄÜÉèÖá£

¡¡¡¡Ò»°ã¿ÉÒÔÅäÖÃÒÔϲÎÊý£º

1) kHTTPd¼àÌýµÄ·þÎñÇëÇó¶Ë¿Ú
2) 'Apache'¼àÌýµÄ¶Ë¿Ú(ÔÚ'localhost'½Ó¿ÚÖÐ)
3) webÎĵµrootĿ¼(documentroot)
4) ¶¯Ì¬ÄÚÈݵÄÇëÇóËù°üº¬µÄ×Ö·û´®(¿ÉÑ¡µÄ)
[ ĬÈϰüÀ¨"cgi-bin"]

¡¡¡¡ÔÚÕâÀïÖ¸¶¨µÄdocumentrootÒ»¶¨Òª±£Ö¤ºÍÔËÐÐÔÚÓû§¿Õ¼äµÄweb·þÎñÆ÷µÄdocumentrootÏàÒ»Ö£¬ÒòΪkHTTPd¿ÉÄܻὫÈκÎÇëÇóÖØ¶¨Ïò¸øÓû§¿Õ¼äµÄweb·þÎñÆ÷À´´¦Àí¡£

¡¡¡¡Ò»¸öµäÐ͵Ľű¾(µÚÒ»ÖÖ²Ù×÷ģʽ)

#!/bin/sh
modprobe khttpd
echo 80 > /proc/sys/net/khttpd/clientport
echo 8080 > /proc/sys/net/khttpd/serverport
echo /var/www > /proc/sys/net/khttpd/documentroot
echo php3 > /proc/sys/net/khttpd/dynamic
echo shtml > /proc/sys/net/khttpd/dynamic
echo 1 > /proc/sys/net/khttpd/start

¡¡¡¡¶ÔÓÚµÚ¶þÖÖ²Ù×÷ģʽ£¬ÆäµäÐ͵Ľű¾ÈçÏ£º

#!/bin/sh
modprobe khttpd
echo 8080 > /proc/sys/net/khttpd/clientport
echo 80 > /proc/sys/net/khttpd/serverport
echo /var/www > /proc/sys/net/khttpd/documentroot
echo php3 > /proc/sys/net/khttpd/dynamic
echo shtml > /proc/sys/net/khttpd/dynamic
echo 1 > /proc/sys/net/khttpd/start

¡¡¡¡ÔÚÕâÖÖÇé¿öÏ£¬ÄãÊ×ÏÈÐèÒªÐÞ¸ÄApacheµÄÅäÖãº

Port 80

¡¡¡¡ÐÞ¸ÄΪ

Port 8080

3¡¢Í£Ö¹kHTTPd

¡¡¡¡ÎªÁËÐÞ¸ÄÅäÖã¬Ê×ÏÈÐèҪֹͣkHTTPd£º

#echo 1 > /proc/sys/net/khttpd/stop

¡¡¡¡Èç¹ûÏ£ÍûÐ¶ÔØÄ£¿é£¬Í£Ö¹kHTTPdÒÔºó£¬ÔËÐУº

echo 1 > /proc/sys/net/khttpd/unload

¡¡¡¡Èç¹ûÄã¸Ð¾õ¶ÔÄãÀ´ËµÕâ¸ö¹ý³ÌÌ«ÂýÁË(ÉÏÃæµÄÃüÁîÐèÒªµÈ´ýÔ¶³ÌÁ¬½ÓÊ×ÏȹرÕ)£¬¿ÉÒÔÔÚÍ£Ö¹ÆäÍ£Ö¹ÒÔºóÏò·þÎñÆ÷·¢ËÍHUPÐźţ¬Õ⽫µ¼Ö·þÎñÆ÷Ïß³ÌÁ¢¼´Í£Ö¹¡£

¡¡¡¡×¢£ºÈç¹ûÕâЩ½ø³ÌûÓб»Í£Ö¹£¬ËüÃÇ»áÂíÉÏÖØÐÂÆô¶¯¡£

ËÄ¡¢ ÏÞÖÆ
¡¡¡¡kHTTPdµÄ°²È«Ä£Ê½·Ç³£Ñϸñ£¬ÕâÊÇÒòΪÓÐÓû§¿Õ¼äµÄweb·þÎñÆ÷¿ÉÒÔ´¦Àí¸´ÔÓµÄÇé¿ö£º

¡¡¡¡kHTTPdÖ»ÓÐÔÚÂú×ãÏÂÃæµÄÌõ¼þ²Å»á´¦ÀíÇëÇó£º

1) URLÖÐûÓÐ'?'
2) URLÒÔ'/'¿ªÊ¼
3) URLÖ¸¶¨µÄÎļþ´æÔÚ
4) ¸ÃÎļþµÄȨÏÞÊÇËùÓÐÓû§¿É¶ÁµÄ(*)
5) Îļþ²»ÊÇÒ»¸öĿ¼£¬²»ÊÇ¿ÉÖ´ÐÐÎļþ£¬Ã»ÓÐstickyλÖÃλ(*)
6) URL²»°üº¬ÈκηǷ¨×Ó´®£¬È磺'..'¡¢'cgi-bin'µÈ(*)
7) ÎļþµÄmimeÀàÐÍÊÇ¿ÉÖªµÄ(*)

¡¡¡¡ÕâÀïºóÃæ±ê×¢*µÄÌõ¼þÊÇ¿ÉÒÔͨ¹ý/proc/sys/net/khttpdÀ´ÅäÖõIJ»Âú×ãÉÏÃæÈκÎÌõ¼þµÄÇëÇ󽫱»×ª½»¸øÓû§¿Õ¼äµÄweb·þÎñÆ÷À´´¦Àí¡£

Îå¡¢²ÎÊý
¡¡¡¡ÏÂÃæµÄ²ÎÊý¿ÉÒÔͨ¹ý/proc/sys/net/khttpd±»ÅäÖãº

±äÁ¿Ãû ĬÈÏÖµ º¬Òå

serverport 8080 kHTTPd¼àÌýµÄ·þÎñ¶Ë¿Ú

clientport 80 Óû§¿Õ¼äµÄweb·þÎñÆ÷µÄ¼àÌý¶Ë¿Ú

¡¡¡¡threads 2 ·þÎñÆ÷Ï̵߳ÄÊýÁ¿£¬¶ÔÓÚСÐÍwebÀ´ËµÓ¦¸ÃÊÇÿ¸öCPU¶ÔÓ¦Ò»¸ö£¬¶ÔÓÚ´óÐÍÍøÕ¾À´Ëµ(»î¶¯Îļþ²»ÊDZ£´æÔÚRAMÖÐ)£¬ÆäÖµÓ¦¸ÃÊÇÿ¸öCPU¶ÔÓ¦2documentroot /var/www webÄÚÈÝËùÔÚĿ¼

start 0 ÉèÖÃΪ1À´Æô¶¯kHTTPd (¸Ãλ¿ÉÄܱ»'stop'×Ô¶¯ÉèÖÃΪ0)

stop 0 ÉèÖÃΪ1À´Í£Ö¹kHTTPd (¸Ãλ¿ÉÄܱ»'start'×Ô¶¯ÉèÖÃΪ0)

unload 0 ÉèÖÃΪ1À´×¼±¸Ð¶ÔØkHTTPdÄ£¿é

¡¡¡¡sloppymime 0 Èç¹ûΪ1£¬ÄÇôΪֹµÄmimeÀàÐÍ×Ô¶¯ÉèÖÃΪtext/html£¬Èç¹ûΪ0Ôòδ֪mimiÀàÐ͵ÄÎļþ½«ÓÉÓû§¿Õ¼äµÄweb·þÎñÆ÷À´´¦Àí

perm_required S_IROTH ÐèÒªµÄ×îСÏÞÖÆ(ÆäÖµ²Î¿¼'man 2 stat')

perm_forbid dir+sticky+ Îļþ½ûÖ¹µÄÏÞÖÆÑÚÂë(ÆäÖµ²Î¿¼'man 2 stat')

dynamic cgi-bin .. ¶¯Ì¬ÄÚÈÝÇëÇóURL°üº¬µÄ×Ó´®

maxconnect 1000 µ±Ç°×î´óÁ¬½ÓÊý

Áù¡¢¸ü¶àÐÅÏ¢
¡¡¡¡¹ØÓÚkHTTPdÌåϵ½á¹¹µÄ¸ü¶àÐÅÏ¢£¬²Î¿¼http://www.fenrus.demon.nl
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. 521hehe ÓÚ 2006-09-19 13:55:44·¢±í:

    ѧϰÖРлл