linux ÏÂapache ÅäÖÃÐéÄâÖ÷»ú
ʲôÊÇÐéÄâÖ÷»ú
ÐéÄâÖ÷»úÓÃÓÚÔÚÎïÀíµÄһ̨Ö÷»úÉÏÔËÐжà¸öÕ¾µã£¬Æ©È磺www.example1.com¡¢www.example2.com£¬Ò²¿ÉÒÔÊÇÕâÑùµÄ£ºwww.example.com¡¢blog.example.com¡£
ÐéÄâÖ÷»úÓÐÁ½ÖÖÀàÐÍ£ºIP-based ºÍname-based£¬Ç°ÕßÓÃÓÚͬһ̨Ö÷»úÉϵĶà¸öÕ¾µã¾ßÓв»Í¬µÄIP µØÖ·£¬ºóÕßÓÃÓÚͬһ̨Ö÷»úÉϵĶà¸öÕ¾µãʹÓÃͬһ¸öIP µØÖ·£¬½öÒÀ¿¿Ãû×ÖÀ´Çø·Ö²»Í¬µÄÕ¾µã¡£
apache 1.1 °æ±¾Ö®ºó¿ªÊ¼Ö§³ÖÕâÁ½ÖÖÐéÄâÖ÷»úÀàÐÍ£¬Æ½³£ÎÒÃÇÒ»°ã̸µ½ºÍÓõ½µÄÐéÄâÖ÷»ú¶¼ÊǵڶþÖÖÀàÐÍ£ºname-based ¡£
name-based µÄÏÞÖÆ
һЩ±È½Ï¹ÅÀϵÄä¯ÀÀÆ÷ÎÞ·¨ÕýÈ··ÃÎÊÐéÄâÖ÷»úµÄÕ¾µã£¬ÕâÊÇÒòΪ²¿·Ö»ùÓÚhttp 1.0 µÄä¯ÀÀÆ÷²»·¢ËÍhttp Ö÷»úÍ·ÐÅÏ¢£¨host header£©¡£ËùÓлùÓÚhttp 1.1 µÄä¯ÀÀÆ÷ºÍ²¿·Ö±È½ÏÁ÷ÐеÄhttp 1.0 ä¯ÀÀÆ÷Ôò²»´æÔÚ´ËÎÊÌâ¡£
ʹÓð²È«Ì×½Ó²ãÐÒ飨SSL£©µÄ·þÎñÆ÷²»ÄÜʹÓÃÐéÄâÖ÷»ú£¬ÕâÊÇÓÉÓÚSSL ÐÒé±¾ÉíµÄÌØÐÔ¾ö¶¨µÄ¡£
һЩÓɲÙ×÷ϵͳ»òÕßÍøÂçÉ豸ʵÏֵĴø¿í¹ÜÀí¼¼Êõ»áÓöµ½ÎÊÌ⣬ÒòΪËüÃÇ¿ÉÄÜÎÞ·¨Í¨¹ýIP Çø·Ö²»Í¬µÄÕ¾µã¡£
ÉèÖÃÒ»¸öname-based ÐéÄâÖ÷»ú
ÒÔlinux »·¾³²ÉÓÃapache ·þÎñÆ÷ΪÀý£¬ÉèÖÃÐéÄâÖ÷»ú£¬ÐèÒªÓÐÖÁÉÙÒ»¸ö¶ÀÁ¢ÍâÍøIP £¬ÖÁÉÙÒ»¸öÓòÃû£¬²¢ÇÒ¿ÉÒÔÐ޸Ķþ¼¶ÓòÃû£¬²¢²»ÒªÇó¾ßÓÐ×Ô¼ºµÄDNS ·þÎñÆ÷¡£
ÉèÖÃÐéÄâÖ÷»ú£¬Ö»ÐèÒªÌí¼ÓÒÔÏÂÐе½httpd.conf Îļþ£¬Õâ¸öÎļþÒ»°ãÔÚ/etc/httpd/conf/httpd.conf ¿ÉÒÔÕÒµ½¡£
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName blog.example.com
DocumentRoot /var/www/html/blog
</VirtualHost>
Ê£ÏµĹ¤×÷¾ÍÊÇÈ¥ÄãµÄÓòÃû·þÎñÉÌ´¦£¬ÉèÖÃDNS ½âÎö£¬½¨Á¢Á½¸öÖ÷»úÃû£¬·Ö±ðΪwww Óëblog£¬Ö¸ÏòµÄIP Ïàͬ£¬¾ùΪÕą̂ÐéÄâÖ÷»úµÄIP µØÖ·¡£ÕâÑù¾Í¿ÉÒÔͨ¹ýwww.example.com Óëblog.example.com ·ÃÎʵ½Í¬Ò»Ì¨Ö÷»úÉϵIJ»Í¬Õ¾µã¡£
ÌâÍâ»°£ºÊµÏÖÐÎÈëexample.com µÄ½âÎö£¬ÉèÖÃÖ÷»úÃûΪ@ £¬@ ´ú±íÓòÃû×ÔÉí¡£ÊµÏÖÐÎÈë*.example.com µÄ½âÎö£¬ÉèÖÃÖ÷»úÃûΪ* ¼´¿É¡£
Ïà¹ØÎĵµ£º
initÊÇLinuxϵͳÀïµÄ¸ù½ø³Ì£¬ÊÇϵͳËùÓнø³ÌµÄ׿ÏÈ¡£ËüµÄÖ÷Òª×÷ÓÃÊǸù¾Ý¼Ç¼ÔÚ/etc/inittabÀïµÄÒ»¸ö½Å±¾£¨script£©³ÌÐò²úÉú½ø³Ì¡£Õâ¸öÎļþͨ³£ÓÃÓÚ¿ØÖÆÓû§µÄµÇ¼ģʽ¡£LinuxϵͳµÄÓÐЧµÇ¼ģʽÓÐ0~9¹²Ê®ÖÖ£¬²»¹ýÑØÓÃUNIXϵͳµÄÖÁ¶à6ÖÖµÄÏÞÖÆ£¬Ò»°ãÖ»ÓÐ1µ½6ÓÐЧ¡£
¡¡¡¡initÒ»°ãÔÚϵͳÆô¶¯Ê±×Ô¶¯ÔËÐУ¬Ò²¿ÉÒÔÓÉrootÓû§µ÷ ......
Ê×ÏȽéÉÜÏÂpthread_cond_t¡£ ÔÚLinuxϳÆÖ®Îª×´Ì¬±äÁ¿£¬ÓëÖ®Ïà¹ØµÄÓÐÏÂÃæ¼¸¸öAPI:
int pthread_cond_init (pthread_cond_t *COND,pthread_condattr_t *cond_ATTR);
int pthread_cond_signal (pthread_cond_t *COND);
int pthread_cond_broadcast (pthread_con ......
ºÜÏë½Ó´¥Ò»ÏÂLinuxµÄÄںˣ¬×î½ü¼ÓÈëÁËLKML£¨Linux Kernel Mailing List£©£¬ÓÌÈ糱ˮ°ãµÄmailÓ¿ÈëÁËÎÒµÄGmail>_<
Ò»¿ªÊ¼ºÜÃÔ㣬Èç´ËÅÓ´óÁËLinuxÄں˴úÂ룬´ÓºÎ¿ªÊ¼£¿ÍøÉÏ¿´µ½ÁËÒ»Ìõ½¨Ò飺´ÓLinuxÉ豸Çý¶¯µÄ±àд¿ªÊ¼¡£
ÓÚÊÇÕÒµ½ÁËÒ»±¾Õâ·½Ãæ±È½ÏºÃµÄ½Ì²Ä£ºLinux Device Drivers, 3rd Edition£¨LDD3£©
²»¹ýÕâ±¾ÊéÀïà ......
ÿ¸ö½ø³Ì¶¼ÓÐÒ»¸öΨһµÄ½ø³ÌºÅ¡£ ÿ¸ö½ø³Ì¶¼ÓÐÒ»¸ö¸¸½ø³Ì¡£ ϵͳÖеĽø³ÌÒÔÊ÷µÄÐÎʽ×éÖ¯£¬init½ø³Ì(½ø³ÌºÅΪ1)×÷Ϊ¸ù¡£ ½ø³Ì0Êǵ÷¶È½ø³Ì£¬Ã»ÓгÌÐòÓëÖ®¶ÔÓ¦£¬ÊÇÄں˵ÄÒ»²¿·Ö¡£ ½ø³Ì1ÊÇinit½ø³Ì£¬ÊÇÔÚϵͳÆô¶¯µÄ½×¶ÎÓÉÄÚºËÆô¶¯µÄ£¬¶ÔÓ¦/sbin/ini ......
²Ù×÷ϵͳÄں˿ÉÄÜÊÇ΢Äںˣ¬Ò²¿ÉÄÜÊǵ¥Äںˣ¨ºóÕßÓÐʱ³ÆÖ®ÎªºêÄÚºËMacrokernel£©¡£°´ÕÕÀàËÆ·â×°µÄÐÎʽ£¬ÕâЩÊõÓﶨÒåÈçÏ£º
µ¥ÄںˣºÒ²³ÆÎªºêÄںˡ£½«Äں˴ÓÕûÌåÉÏ×÷Ϊһ¸ö´ó¹ý³ÌʵÏÖ£¬²¢Í¬Ê±ÔËÐÐÔÚÒ»¸öµ¥¶ÀµÄµØÖ·¿Õ¼ä¡£ËùÓеÄÄں˷þÎñ¶¼ÔÚÒ»¸öµØÖ·¿Õ¼äÔËÐУ¬Ï໥֮¼äÖ±½Óµ÷Óú¯Êý£¬¼òµ¥¸ßЧ¡£Î¢Ä ......