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

ÅäÖúÍά»¤Apache WEB Server °²È«ÐÔ

·¢²¼Ê±¼ä:2006-08-31 12:38:43À´Ô´:ºìÁª×÷Õß:soylo
¡¡¡¡Ç°ÑÔ£ºÔÚÄ¿Ç°µÄInternetʱ´ú£¬Ö÷Ò³ÒѳÉΪÊ÷Á¢¹«Ë¾ÐÎÏóºÍչʾ×ÔÎÒÌìµØµÄÒ»¸öÖØÒªÊֶΣ¬ÅäÖÃһ̨ǿ´óÇÒ°²È«µÄWeb Server¾ÍÏÔµÃÓÈÆäÖØÒª¡£ÔÚÖÚ¶àµÄWeb Server²úÆ·ÖУ¬ApacheÊÇÓ¦ÓÃ×îΪ¹ã·ºµÄÒ»¸ö²úÆ·£¬Í¬Ê±Ò²ÊÇÒ»¸öÉè¼ÆÉϷdz£°²È«µÄ³ÌÐò¡£

¡¡¡¡µ«ÊÇ£¬Í¬ÆäËüÓ¦ÓóÌÐòÒ»Ñù£¬ApacheÒ²´æÔÚ°²È«È±ÏÝ¡£±¾ÎĽ«Ïêϸ½éÉÜÈçºÎÕýÈ·ÅäÖúÍά»¤Apache WEB ServerµÄ°²È«ÐÔÎÊÌâµÈ¡£

Ò»£¬Apache·þÎñÆ÷µÄ½éÉÜ

¡¡¡¡Apache·þÎñÆ÷ËüÊÇInternetÍøÉÏÓ¦ÓÃ×îΪ¹ã·ºµÄWeb·þÎñÆ÷Èí¼þÖ®Ò»¡£Apache·þÎñÆ÷Ô´×ÔÃÀ¹ú¹ú¼Ò³¬¼¶¼¼Êõ¼ÆËãÓ¦ÓÃÖÐÐÄ£¨NCSA£©µÄWeb·þÎñÆ÷ÏîÄ¿ÖС£Ä¿Ç°ÒÑÔÚ»¥ÁªÍøÖÐÕ¼¾ÝÁËÁìµ¼µØλ¡£Apache·þÎñÆ÷µÃ¾­¹ý¾«ÐÄÅäÖÃÖ®ºó£¬²ÅÄÜʹËüÊÊÓ¦¸ß¸ººÉ£¬´óÍÌÍÂÁ¿µÄ»¥ÁªÍø¹¤×÷¡£¿ìËÙ¡¢¿É¿¿¡¢Í¨¹ý¼òµ¥µÄAPIÀ©Õ¹£¬Perl/Python½âÊÍÆ÷¿É±»±àÒëµ½·þÎñÆ÷ÖУ¬ÇÒÍêÈ«Ãâ·Ñ£¬ÍêÈ«Ô´´úÂ뿪·Å¡£Èç¹ûÄãÐèÒª´´½¨Ò»¸öÿÌìÓÐÊý°ÙÍòÈË·ÃÎʵÄWeb·þÎñÆ÷£¬Apache¿ÉÄÜÊÇ×î¼ÑÑ¡Ôñ¡£

¶þ£¬Apache·þÎñÆ÷µÄÖ÷Òª°²È«È±ÏÝ

¡¡¡¡ÕýÈçÎÒÃÇÇ°ÑÔËù˵¾¡¹ÜApache·þÎñÆ÷Ó¦ÓÃ×îΪ¹ã·º£¬Éè¼ÆÉϷdz£°²È«µÄ³ÌÐò¡£µ«ÊÇͬÆäËüÓ¦ÓóÌÐòÒ»Ñù£¬ApacheÒ²´æÔÚ°²È«È±ÏÝ¡£±Ï¾¹ËüÊÇÍêÈ«Ô´´úÂ룬Apache·þÎñÆ÷µÄ°²È«È±ÏÝÖ÷ÒªÊÇʹÓÃHTTPЭÒé½øÐеľܾø·þÎñ¹¥»÷(denial of service)¡¢»º³åÇøÒç³ö¹¥»÷ÒÔ¼°±»¹¥»÷Õß»ñµÃrootȨÏÞÈýȱÏݺÍ×îеĶñÒâµÄ¹¥»÷Õß½øÐС°¾Ü¾ø·þÎñ¡±(DoS)¹¥»÷¡£ºÏÀíµÄÍøÂçÅäÖÃÄܹ»±£»¤Apache·þÎñÆ÷ÃâÔâ¶àÖÖ¹¥»÷¡£ÎÒÃÇÀ´½éÉÜÒ»ÏÂÖ÷ÒªµÄ°²È«È±ÏÝ£º

¡¡¡¡£¨1£©Ê¹ÓÃHTTPЭÒé½øÐеľܾø·þÎñ¹¥»÷(denial of service)µÄ°²È«È±ÏÝ

¡¡¡¡ÕâÖÖ·½·¨¹¥»÷Õß»áͨ¹ýijЩÊÖ¶Îʹ·þÎñÆ÷¾Ü¾ø¶ÔHTTPÓ¦´ð¡£ÕâÑù»áʹApache¶Ôϵͳ×ÊÔ´(CPUʱ¼äºÍÄÚ´æ)ÐèÇóµÄ¾çÔö£¬×îÖÕÔì³ÉApacheϵͳ±äÂýÉõÖÁÍêȫ̱»¾¡£

¡¡¡¡£¨2£©»º³åÇøÒç³öµÄ°²È«È±ÏÝ

¡¡¡¡¸Ã·½·¨¹¥»÷ÕßÀûÓóÌÐò±àдµÄһЩȱÏÝ£¬Ê¹³ÌÐòÆ«ÀëÕý³£µÄÁ÷³Ì¡£³ÌÐòʹÓþ²Ì¬·ÖÅäµÄÄÚ´æ±£´æÇëÇóÊý¾Ý£¬¹¥»÷Õ߾ͿÉÒÔ·¢ËÍÒ»¸ö³¬³¤ÇëÇóʹ»º³åÇøÒç³ö¡£±ÈÈçһЩPerl±àдµÄ´¦ÀíÓû§ÇëÇóµÄÍø¹Ø½Å±¾¡£Ò»µ©»º³åÇøÒç³ö£¬¹¥»÷Õß¿ÉÒÔÖ´ÐÐÆä¶ñÒâÖ¸Áî»òÕßʹϵͳ崻ú¡£

¡¡¡¡£¨3£©±»¹¥»÷Õß»ñµÃrootȨÏ޵ݲȫȱÏÝ

¡¡¡¡¸Ã°²È«È±ÏÝÖ÷ÒªÊÇÒòΪApache·þÎñÆ÷Ò»°ãÒÔrootȨÏÞÔËÐÐ(¸¸½ø³Ì)£¬¹¥»÷Õß»áͨ¹ýËü»ñµÃrootȨÏÞ£¬½ø¶ø¿ØÖÆÕû¸öApacheϵͳ¡£

¡¡¡¡£¨4£©¶ñÒâµÄ¹¥»÷Õß½øÐС°¾Ü¾ø·þÎñ¡±(DoS)¹¥»÷µÄ°²È«È±ÏÝ

¡¡¡¡Õâ¸ö×îÐÂÔÚ6ÔÂ17ÈÕ·¢Ïֵĩ¶´£¬ËüÖ÷ÒªÊÇ´æÔÚÓÚApacheµÄchunk encodingÖУ¬ÕâÊÇÒ»¸öHTTPЭÒ鶨ÒåµÄÓÃÓÚ½ÓÊÜwebÓû§ËùÌá½»Êý¾ÝµÄ¹¦ÄÜ¡£ ÀûÓúڿͳÌÐò¿ÉÒÔ¶ÔÓÚÔËÐÐÔÚFreeBSD 4.5, OpenBSD 3.0 / 3.1, NetBSD 1.5.2ƽ̨ÉϵÄApache·þÎñÆ÷¾ù¿É½øÐÐÓÐЧµÄ¹¥»÷.

¡¡¡¡ËùÓÐ˵ʹÓÃ×î¸ßºÍ×îа²È«°æ±¾¶ÔÓÚ¼ÓÇ¿Apache Web·þÎñÆ÷µÄ°²È«ÊÇÖÁ¹ØÖØÒªµÄ¡£Çë¹ã´óApache·þÎñÆ÷¹ÜÀíԱȥhttp://www.apache.org/dist/httpd/ÏÂÔز¹¶¡³ÌÐòÒÔÈ·±£ÆäWEB·þÎñÆ÷°²È«£¡

Èý£¬ Õýȷά»¤ºÍÅäÖÃApache·þÎñÆ÷

¡¡¡¡ËäÈ»Apache·þÎñÆ÷µÄ¿ª·¢Õ߷dz£×¢ÖØ°²È«ÐÔ£¬ÓÉÓÚApache·þÎñÆ÷ÆäÅÓ´óµÄÏîÄ¿£¬ÄÑÃâ»á´æÔÚ°²È«Òþ»¼¡£Õýȷά»¤ºÍÅäÖÃApache WEB·þÎñÆ÷¾ÍºÜÖØÒªÁË¡£ÎÒÃÇӦעÒâµÄһЩÎÊÌ⣺

¡¡¡¡£¨1£©Apache·þÎñÆ÷ÅäÖÃÎļþ

¡¡¡¡Apache Web·þÎñÆ÷Ö÷ÒªÓÐÈý¸öÅäÖÃÎļþ£¬Î»ÓÚ/usr/local/apache/confĿ¼Ï¡£ÕâÈý¸öÎļþÊÇ£º

[code]httpd.con----->Ö÷ÅäÖÃÎļþ

srm.conf------>Ìî¼Ó×ÊÔ´Îļþ

access.conf--->ÉèÖÃÎļþµÄ·ÃÎÊȨÏÞ[/code]

¡¡¡¡×¢£º¾ßÌåÅäÖÿÉÒԲο¼£ºhttp://httpd.apache.org/docs/mod/core.html

¡¡¡¡£¨2£©Apache·þÎñÆ÷µÄÈÕÖ¾Îļþ

¡¡¡¡ÎÒÃÇ¿ÉÒÔʹÓÃÈÕÖ¾¸ñʽָÁîÀ´¿ØÖÆÈÕÖ¾ÎļþµÄÐÅÏ¢¡£Ê¹ÓÃLogformat "%a %l"Ö¸Á¿ÉÒÔ°Ñ·¢³öHTTPÇëÇóä¯ÀÀÆ÷µÄIPµØÖ·ºÍÖ÷»úÃû¼Ç¼µ½ÈÕÖ¾Îļþ¡£³öÓÚ°²È«µÄ¿¼ÂÇ£¬ÔÚÈÕÖ¾ÖÐÎÒÃÇÓ¦ÖªµÀÖÁÉÙÓ¦¸ÃÄÇЩÑé֤ʧ°ÜµÄWEBÓû§£¬ÔÚhttp.confÎļþÖмÓÈëLogformat "%401u"Ö¸Áî¿ÉÒÔʵÏÖÕâ¸öÄ¿µÄ¡£Õâ¸öÖ¸ÁÓÐÆäËüµÄÐí¶à²ÎÊý£¬Óû§¿ÉÒԲο¼ApacheµÄÎĵµ¡£ÁíÍ⣬ApacheµÄ´íÎóÈÕÖ¾Îļþ¶ÔÓÚϵͳ¹ÜÀíÔ±À´ËµÒ²ÊǷdz£ÖØÒªµÄ£¬´íÎóÈÕÖ¾ÎļþÖаüÀ¨·þÎñÆ÷µÄÆô¶¯¡¢Í£Ö¹ÒÔ¼°CGIÖ´ÐÐʧ°ÜµÈÐÅÏ¢¡£¸ü¶àÇë²Î¿´ApacheÈÕ־ϵÁÐ1-5¡£

¡¡¡¡£¨3£©Apache·þÎñÆ÷µÄĿ¼°²È«ÈÏÖ¤

¡¡¡¡ÔÚApache ServerÖÐÊÇÔÊÐíʹÓà .htaccess×öĿ¼°²È«±£»¤µÄ£¬Óû¶ÁÈ¡Õâ±£»¤µÄĿ¼ÐèÒªÏȼüÈëÕýÈ·Óû§ÕʺÅÓëÃÜÂë¡£ÕâÑù¿É×öΪרÃŹÜÀíÍøÒ³´æ·ÅµÄĿ¼»ò×öΪ»áÔ±ÇøµÈ¡£

¡¡¡¡ÔÚ±£»¤µÄĿ¼·ÅÖÃÒ»¸öµµ°¸£¬µµÃûΪ.htaccss

[code]AuthName "»áԱרÇø"

AuthType "Basic"

AuthUserFile "/var/tmp/xxx.pw" ----->°Ñpassword·ÅÔÚÍøÕ¾Íâ

require valid-user[/code]

¡¡¡¡µ½apache/binĿ¼£¬½¨passwordµµ

[code]% ./htpasswd -c /var/tmp/xxx.pw username1 ----->µÚÒ»´Î½¨µµÒªÓòÎÊý"-c"

% ./htpasswd /var/tmp/xxx.pw username2[/code]

¡¡¡¡ÕâÑù¾Í¿ÉÒÔ±£»¤Ä¿Â¼ÄÚµÄÄÚÈÝ£¬½øÈëÒªÓúϷ¨µÄÓû§£®

¡¡¡¡×¢£º²ÉÓÃÁËApacheÄÚ¸½µÄÄ£×é¡£Ò²¿ÉÒÔ²ÉÓÃÔÚhttpd.confÖмÓÈ룺
¡¡
[code]options¡¡indexes¡¡followsymlinks¡¡
allowoverride¡¡authconfig¡¡
order¡¡allow,deny¡¡
allow¡¡from¡¡all[/code]¡¡
¡¡
¡¡¡¡£¨4£©Apache·þÎñÆ÷·ÃÎÊ¿ØÖÆ

¡¡¡¡ÎÒÃǾÍÒª¿´Èý¸öÅäÖÃÎļþÖеĵÚÈý¸öÎļþÁË£¬¼´access.confÎļþ£¬Ëü°üº¬Ò»Ð©Ö¸Áî¿ØÖÆÔÊÐíʲôÓû§·ÃÎÊApacheĿ¼¡£Ó¦¸Ã°Ñdeny from allÉèΪ³õʼ»¯Ö¸ÁÔÙʹÓÃallow fromÖ¸Áî´ò¿ª·ÃÎÊȨÏÞ¡£
¡¡
[code]order deny,allow
deny from all
allow from safechina.net[/code]
¡¡¡¡
¡¡¡¡ÉèÖÃÔÊÐíÀ´×Ôij¸öÓò¡¢IPµØÖ·»òÕßIP¶ÎµÄ·ÃÎÊ¡£

¡¡¡¡£¨5£©Apache·þÎñÆ÷µÄÃÜÂë±£»¤ÎÊÌâ

¡¡¡¡ÎÒÃÇÔÙʹÓÃ.htaccessÎļþ°Ñij¸öĿ¼µÄ·ÃÎÊȨÏÞ¸³Óèij¸öÓû§¡£ÏµÍ³¹ÜÀíÔ±ÐèÒªÔÚhttpd.conf»òÕßsrm.confÎļþÖÐʹÓÃAccessFileNameÖ¸Áî´ò¿ªÄ¿Â¼µÄ·ÃÎÊ¿ØÖÆ¡£È磺

[code]AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require Phoenix
# htpasswd -c /path/to/httpd/users Phoenix[/code]
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. soylo ÓÚ 2006-08-31 12:40:16·¢±í:

    ËÄ£¬ÉèÖÃApache·þÎñÆ÷µÄWEBºÍÎļþ·þÎñÆ÷

    ¡¡¡¡ÎÒÃÇÔÚApache·þÎñÆ÷ÉÏ´æ·ÅWEB·þÎñÆ÷µÄÎļþ£¬¹©Óû§·ÃÎÊ£¬²¢ÉèÖÃ/home/ftp/pubĿ¼ΪÎļþ´æ·ÅÇøÓò£¬ÓÃhttp://download.your.com/pub/À´·ÃÎÊ¡£ÔÚ·À»ðǽÉÏÉèÖÃapache·´Ïò´úÀí¼¼Êõ£¬ÓÉ·À»ðǽ´úÀí·ÃÎÊ¡£¡¡
    ¡¡¡¡£¨1£©Apache·þÎñÆ÷µÄÉèÖá¡

    ¡¡¡¡apache·þÎñÆ÷²ÉÓÃĬÈÏÅäÖá£Ö÷Ŀ¼Ϊ/home/httpd/html,Ö÷»úÓòÃûΪPhoenix.your.com,ÇÒ±ðÃûµ½www.your.comÖÐ,¡¡²¢ÇÒÉèÖÃsrm.conf¼ÓÒ»ÐбðÃû¶¨ÒåÈçÏ£º¡¡

    [code]Alias¡¡/pub¡¡/home/ftp/pub/[/code]¡¡

    ¡¡¡¡¸ü¸ÄĬÈÏÓ¦ÓóÌÐòÀàÐͶ¨ÒåÈçÏ£º¡¡

    [code]DefaultType¡¡application/octet-stream[/code]¡¡

    ¡¡¡¡×îºóÔÚ/etc/httpd/conf/access.confÖÐÔö¼ÓÒ»ÏÒå¡¡
    ¡¡¡¡
    [code]Options¡¡Indexes¡¡
    AllowOverride¡¡AuthConfig¡¡
    order¡¡allow,deny¡¡
    allow¡¡from¡¡all[/code]¡¡
    ¡¡
    ¡¡¡¡×¢£ºOptions¡¡IndexesÔÊÐíÔÚÕÒ²»µ½index.htmlÎļþµÄÇé¿öÏÂÔÊÐíÁгöĿ¼/ÎļþÁÐ±í¡£AllowOverride¡¡AuthConfigÔÊÐí×ö»ù±¾µÄÓû§ÃûºÍ¿ÚÁîÑéÖ¤¡£ÕâÑùµÄ»°£¬ÐèÒªÔÚ/home/ftp/pubĿ¼Ï·ÅÈë.htaccess£¬ÄÚÈÝÈçÏ£º¡¡
    ¡¡
    [code][root@shopu¡¡pub]#¡¡more¡¡.htaccess¡¡
    AuthName¡¡Branch¡¡Office¡¡Public¡¡Software¡¡Download¡¡Area¡¡
    AuthType¡¡Basic¡¡
    AuthUserFile¡¡/etc/.usrpasswd¡¡
    require¡¡valid-user[/code]¡¡
    ¡¡¡¡
    ¡¡¡¡ÓÃ# htpasswd¡¡-c¡¡/etc/.usrpasswd¡¡user1¡¡ ·Ö±ð´´½¨²»Í¬µÄÔÊÐí·ÃÎÊ/pubÏÂÎļþ·þÎñµÄÍⲿÓû§ÃûºÍ¿ÚÁî¡£¡¡

    ¡¡¡¡£¨2£©ÔÚ·À»ðǽÉÏÅäÖ÷´Ïò´úÀí¼¼Êõ.¡¡

    ¡¡¡¡ÔÚ/etc/httpd/conf/httpd.conf¡¡ ÖмÓÈë NameVirtualHost¡¡xxx.xxx.xxx.xxx¡¡

    ¡¡¡¡#¡¡xxx.xxx.xxx.xxx ----->ÊÇ·À»ðǽÍⲿÔÚ»¥ÁªÍøÉÏÓÀ¾ÃIPµØÖ·

    [code]¡¡¡¡servername¡¡www.your.com¡¡
    ¡¡¡¡errorlog¡¡/var/log/httpd/error_log¡¡
    ¡¡¡¡transferlog¡¡/var/log/httpd/access_log¡¡
    ¡¡¡¡rewriteengine¡¡on¡¡
    ¡¡¡¡proxyrequests¡¡off¡¡
    ¡¡¡¡usecanonicalname¡¡off¡¡
    ¡¡¡¡rewriterule¡¡^/(.*)$¡¡http://xxx.xxx.xx.x/$1¡¡Apache·þÎñÆ÷µÄIPµØÖ·¡£ ¡¡¡¡
    ¡¡¡¡servername¡¡http://download.your.com/pub/
    ¡¡¡¡errorlog¡¡/var/log/httpd/download/error_log¡¡
    ¡¡¡¡transferlog¡¡/var/log/httpd/download/access_log¡¡
    ¡¡¡¡rewriteengine¡¡on¡¡
    ¡¡¡¡proxyrequests¡¡off¡¡
    ¡¡¡¡usecanonicalname¡¡off¡¡
    ¡¡¡¡rewriterule¡¡^/(.*)$¡¡http://xxx.xxx.xx.x/$1¡¡Í¬ÉÏApache·þÎñÆ÷µÄIPµØÖ·¡£[/code]

    ¡¡¡¡ÉèÖ÷À»ðǽÉϵÄDNS£¬ÈÃdownload.your.comºÍwww.your.com¶¼Ö¸Ïò·À»ðǽµÄÍⲿÍøµØÖ·xxx.xxx.xxx.xxx¡£ÓÃhttp://www.your.com·ÃÎÊÖ÷Ò³£¬ÓÃhttp://download.your.com/pub/·ÃÎʹ«¹²ÎļþµÄÏÂÔØÇø¡£

    ¡¡¡¡×¢£º»¹ÐèÒªÔÚapache·þÎñÆ÷Ö÷»úÉϽ¨Á¢Ä¿Â¼/var/log/httpd/download/£¬·ñÔò»á³ö´í¡£ÁíÍ⣬Ҳ¿ÉÒÔÉèÖ÷À»ðǽÖ÷»úÉϵÄ/home/httpd/html/index.htmlµÄÊôÐÔΪ750À´×èÖ¹·ÃÎÊ£¬ÕâÊÇ·ÀÍⲿÓû§ÄÜ·ÃÎʵ½·À»ðǽÉϵÄApache·þÎñÆ÷µÄhttp://www.your.comÖС£¡¡

    ¡¡¡¡×ܽ᣺Apache ServerÊÇÒ»¸ö·Ç³£ÓÅÐ㣬·Ç³£°ôµÄ·þÎñÆ÷£¬Ö»ÒªÄãÕýÈ·ÅäÖúÍά»¤ºÃApache·þÎñÆ÷