ÀÖÓãµç¾º

½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

ÔÆ¼ÆËã´óÊý¾Ý£º¹¹½¨¸ßÐÔÄÜWebÕ¾µã

¸üÐÂʱ¼ä:2017Äê12ÔÂ19ÈÕ15ʱ18·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

½»Á÷Ä¿±ê£º

1¡¢ ÊìÏ¤ÍøÕ¾Ñݽø¹ý³ÌÖеĸ÷¸ö½×¶Î¼°¼¼Êõ·½°¸(ÖØÒª)

2¡¢ ÊìϤ´óÐÍÍøÕ¾Öлº´æµÄÓ¦ÓÃ

3¡¢ ÊìϤ³£¼û¸ºÔؾùºâµÄÊÖ¶Î

4¡¢ ÊìϤÄÚ´æÊý¾Ý¿âRedis

http://item.jd.com/1027067140.html

http://item.jd.com/11449803.html

´óÐÍÍøÕ¾¼°Æä¼Ü¹¹µÄÑݽø¹ý³Ì

1¡¢Ê²Ã´ÊÇ´óÐÍÍøÕ¾

·ÃÎÊÁ¿´ó¡¢Êý¾ÝÁ¿´ó¡¢ÒµÎñ¸´ÔӶȸß¡¢·Ö²¼Ê½

ÍøÕ¾ÊÇÓÃÀ´·ÃÎʵÄ£¬·ÃÎÊÁ¿´ó¾ÍÓ¦¸ÃÊÇ´óÐÍÍøÕ¾?!

´óÁ¿µÄÊý¾Ý£¬»òÕß˵º£Á¿Êý¾Ý¡£´ÓÊý¾ÝÖзÖÎöÒµÎñºÍϵͳµÄ¸´ÔÓÐÔ¡£

×ܽ᣺

ÄÇôҪ֧³Öº£Á¿µÄÊý¾ÝºÍ·Ç³£¸ßµÄ²¢·¢Á¿£¬ÄÇôËû¿ÉÄÜÊÇÒ»¸ö·Ö²¼Ê½ÏµÍ³¡£

2¡¢ÍøÕ¾µÄ¼Ü¹¹Ñݽø

2.1¡¢¹¹½¨ÍøÕ¾¼¼ÊõÊÖ¶Î

·¢²¼Ò»¸öÍøÕ¾ÐèÒªÄÄÐ©ÒªËØ?

Ò»¸öÎïÀí»ú¡¢Ò»¸öWEBÈÝÆ÷¡¢Ò»¸öÊý¾Ý¿â

¿ª·¢ÍøÕ¾µÄ¼¼ÊõÊÖ¶Î?

SpringMVC/Spring/Ibatis/JDBC/Mysql

2.2¡¢ÒµÎñϵͳ-µçÉÌÍøÕ¾

l ¸÷¸ö¹¦ÄÜÄ£¿éͨ¹ýJVMÄÚ²¿·½·¨µ÷ÓÃÀ´½øÐн»¸¶

l ·ÃÎÊÊý¾Ý¿âͨ¹ýJDBCµÄ·½Ê½Á´½Ó

2.3¡¢µ¥»ú¸ºÔظ澯¡¢Êý¾Ý¿âÓëÓ¦Ó÷ÖÀë

l Ëæ×ÅÒµÎñÁ¿µÄ·¢Õ¹£¬µ¥Ì¨ÎïÀí»ú²»ÄÜÖ§³Å¡£

l ÖØÐ¹ºÖÃһ̨ÎïÀí»ú£¬½«Êý¾Ý¿â·þÎñÆ÷Ç¨ÒÆ³öÈ¥¡£

2.4¡¢Ó¦Ó÷þÎñÆ÷¸ºÔظ澯¡¢ÈçºÎÈÃÓ¦Ó÷þÎñÆ÷×ßÏò¼¯Èº

l Ó¦Ó÷þÎñÆ÷ѹÁ¦±ä´ó£¬´Óһ̨±ä³ÉÁ½Ì¨¡£

l ËûÃǶ¼ÒÀÀµµ×²ãÊý¾Ý¿â¶ÔÍâÌṩ·þÎñ¡£

l Ó¦ÓøºÔؾùºâÒ»°ãʹÓÃNginx»òÕßapache

ÎÊÌ⣺

1¡¢ Óû§µÄÇëÇóÓ¦¸Ã´òÔÚÄĄ̈ӦÓ÷þÎñÆ÷ÉÏ?(¸ºÔؾùºâ·þÎñ)

2¡¢ Sesssion¹²ÏíµÄÎÊÌâ

½â¾ö£º

1¡¢Ê²Ã´ÊÇsession?

ÔڻỰ¿ªÊ¼Ê±£¬HTTPЭÒéµÄ»á»°»úÖÆ·ÖÅäÒ»¸öΨһµÄ»á»°±êÖ¾(SessionId)£¬Í¨¹ýCookie°ÑÕâ¸ö±êÖ¾¸æËßä¯ÀÀÆ÷£¬ÒÔºóÿ´ÎÇëÇóµÄʱºòä¯ÀÀÆ÷¶¼»á´øÉÏÕâ¸ö±êÖ¾À´¸æËßWeb·þÎñÆ÷ÇëÇóÊÇÊôÓÚÄĸö»á»°µÄ¡£(±ÈÈç±£³ÖµÇ½״̬¡¢¹ºÎï³µÊý¾Ý)

2¡¢ÎªÊ²Ã´ÓÐsession¹²ÏíµÄÎÊÌâ?

Óû§Í¨¹ý¸ºÔؾùºâµÄ·½Ê½£¬Ëæ»ú·ÃÎʵ½·þÎñÆ÷A£¬sessionId¾Í»á´´½¨µ½A·þÎñÆ÷ÉÏ£¬Èç¹û²»×ö´¦Àí¾Í²»Äܱ£Ö¤½ÓÏÂÀ´µÄÿ´ÎÇëÇó¶¼ÂäÔÚA·þÎñÆ÷ÉÏ¡£

·½·¨Ò»£ºÈÃͬÑùµÄseesionIdÿ´Î¶¼´òÔÚһ̨·þÎñÆ÷ÉÏ¡£(å´»úÔõô°ì?)

·½·¨¶þ£ºsession replication ¹²Ïí

·½·¨Èý£ºÊ¹ÓÃcookies±£´æsessionÖеÄÐÅÏ¢

2.5¡¢Êý¾Ý¿âѹÁ¦±ä´ó¡¢¶Áд·ÖÀë

l д²Ù×÷Ö÷Òª×ßÖ÷¿â£¬ÊÂÎïÖеIJéѯҲҪ×ßÖ÷¿â¡£

l ËÑË÷ÒýÇæÒ²ÊÇÒ»¸ö¶Á¿â

1¡¢ËÑË÷Ò»¸öÉÌÆ·µÄÃû³Æ£¬like

2¡¢¸ù¾Ý±»ËÑË÷µÄÊý¾ÝÀ´´´½¨Ë÷Òý(±»ËÑË÷µÄÊý¾Ý±ä»¯Ê±£¬Ë÷ÒýÒ²±ä»¯)

ËÑË÷ÒýÇæÌṩÁËÕ¾ÄÚËÑË÷µÄijЩ³¡¾°¶ÁµÄÎÊÌ⣬ÌṩÁ˸üºÃµÄ²éѯЧ¹û¡£

2.6¡¢ÃÖ²¹¹ØÏµÐÍÊý¾Ý¿âµÄ²»×㣬ÒýÈë·Ö²¼Ê½´æ´¢ÏµÍ³(Redis)

·Ö²¼Ê½Îļþϵͳ¡¢·Ö²¼Ê½Key-ValueϵͳºÍ·Ö²¼Ê½Êý¾Ý¿â

2.7¡¢ ¶Áд·ÖÀëºóÊý¾Ý¿âÓÖÓöµ½Æ¿¾±

Êý¾Ý²ð·ÖÓÐÁ½ÖÖ·½Ê½£¬Ò»¸öÊÇ´¹Ö±²ð·Ö£¬Ò»¸öÊÇˮƽ²ð·Ö¡£´¹Ö±²ð·Ö¾ÍÊǰÑÒ»¸öÊý¾Ý¿âÖв»Í¬ÒµÎñµ¥µÄÊý¾Ý·Öµ½²»Í¬µÄÊý¾Ý¿âÀïÃæ£¬Ë®Æ½²ð·ÖÊǸù¾ÝÒ»¶¨µÄ¹æÔò°ÑͬһҵÎñµ¥ÔªµÄÊý¾Ý²ð·Öµ½¶à¸öÊý¾Ý¿âÖС£

2.7.1¡¢×¨¿âרÓ㬴¹Ö±²ð·Ö

´¹Ö±²ð·Ö´øÀ´µÄÓ°Ï죺

l һЩjoin²Ù×÷»á±äµÃ±È½ÏÀ§ÄÑ£¬ÒòΪÊý¾Ý¿ÉÄÜÒѾ­ÔÚÁ½¸öÊý¾Ý¿âÖÐÁË¡£

ÐèÒªÓ¦ÓûòÕ߯äËû·½°¸½â¾ö

2.7.2¡¢±íÖеÄÊý¾ÝÁ¿±È½Ï´ó£¬Ë®Æ½²ð·Ö

ˮƽ²ð·Ö´øÀ´µÄÓ°Ï죺

l ·ÃÎÊÓû§ÐÅÏ¢µÄÓ¦ÓÃϵͳÐèÒª½â¾ösql·ÓɵÄÎÊÌâ

l Ö÷¼üµÄ´¦ÀíÒ²»á²»Í¬£¬²»ÄÜÒÀ¿¿Êý¾Ý¿âµÄ×ÔÔö³¤ÐòÁÐÁË

l ²éѯ·ÖÒ³µÄÎÊÌâ

l °üº¬´¹Ö±²ð·ÖµÄÓ°Ïì

2.8¡¢·Ö¿â·Ö±íÖ®ºó£¬Ó¦ÓÃÃæ¶ÔеÄÌôÕ½-·þÎñ»¯

Ç°ÃæËù½²µÄ¶Áд·ÖÀë¡¢·Ö²¼Ê½´æ´¢¡¢Êý¾Ý·Ö¿â·Ö±í¶¼ÊÇÔÚ½â¾öÊý¾Ý·½ÃæµÄÎÊÌâ¡£

Ëæ×ÅÓ¦Óõĵķ¢Õ¹£¬Ó¦ÓõŦÄÜ»áÔ½À´Ô½¶à£¬Ó¦ÓÃÔ½À´Ô½´ó¡£ÎÒÃÇÐèÒª¿¼ÂDz»ÈÃÓ¦ÓóÖÐø±ä´ó£¬¾ÍÐèÒª°ÑÓ¦Óò𿪡£

½«Ó¦Óòð·Ö¿ªÀ´¡£

1¡¢ °´ÕÕÒµÎñµÄÌØÐÔ°ÑÓ¦Óòð·Ö£¬(Óû§ÏµÍ³¡¢ÉÌÆ·ÏµÍ³£¬¶©µ¥ÏµÍ³)

2¡¢ °´ÕÕ¹¦ÄܽøÐвð·Ö£¬(Óû§×¢²áϵͳ¡¢Óû§µÇ½ϵͳ¡¢Óû§ÐÅϢϵͳ¡¢ÉÌÆ·Õ¹Ê¾ÏµÍ³¡¢ÉÌÆ·¹ÜÀíϵͳ……)

·þÎñ»¯Ö®ºó£¬Éæ¼°µ½Ó¦ÓÃÓëÓ¦ÓÃÖ®¼äµÄͨÐÅ¡£¼´½ø³ÌÓë½ø³Ì¼äµÄͨÐÅ¡£

Ô¶³Ì¹ý³Ìµ÷ÓÃ(RPC¡¢NettyµÈ)

3¡¢·Ö²¼Ê½ÍøÕ¾½éÉÜ

3.1¡¢·Ö²¼Ê½ÍøÕ¾µÄÕûÌå½á¹¹

ÔÚ·Ö²¼Ê½ÍøÕ¾ÖУ¬ÎÒÃǻὫweb·þÎñÆ÷ºÍÊý¾Ý¿â·þÎñÆ÷×öÕûÌåµÄ¹æ»®£¬²¢·Ç²ÉÓÃijһ̨»úÆ÷×öweb·þÎñÆ÷»òÕßÊý¾Ý¿â·þÎñÆ÷£¬¶øÊDzÉÓü¯ÈºµÄ¼Ü¹¹¡£

3.2¡¢·Ö²¼Ê½ÍøÕ¾ÖеķþÎñ»¯¿ò¼Ü

ÔÚ·Ö²¼Ê½ÍøÕ¾ÖУ¬»á³öÏֺܶàΪÁ˸ºÔؾùºâºÍfailover×öÖ§³Ö¶ø³öÏֵĿò¼Ü£¬»¹ÓÐΪÏîÄ¿½âñî¶ø³öÏֵĴóÁ¿µÄRPC¿ò¼Ü£¬ÀýÈç×öÖ÷±¸µÄkeepalived¡¢×ö·´Ïò´úÀíµÄnginx¡¢×ö¸ºÔؾùºâµÄlvs¡¢×öRPCµÄdubbo¡¢netty¡¢thriftµÈµÈ¡£

NginxÊÇÒ»¸ö×ÔÓÉ¡¢¿ªÔ´¡¢¸ßÐÔÄܼ°ÇáÁ¿¼¶µÄHTTP·þÎñÆ÷¼°·´×ª´úÀí·þÎñÆ÷¡£NginxÒÔÆä¸ßÐÔÄÜ¡¢Îȶ¨¡¢¹¦Äܷḻ¡¢ÅäÖüòµ¥¼°Õ¼ÓÃϵͳ×ÊÔ´ÉÙ¶øÖø³Æ¡£

Nginx ³¬Ô½ Apache µÄ¸ßÐÔÄܺÍÎȶ¨ÐÔ£¬Ê¹µÃ¹úÄÚʹÓà Nginx ×÷Ϊ Web ·þÎñÆ÷µÄÍøÕ¾Ò²Ô½À´Ô½¶à.

KeepalivedµÄ×÷ÓÃÊǼì²âweb·þÎñÆ÷µÄ״̬£¬Èç¹ûÓÐһ̨web·þÎñÆ÷ËÀ»ú£¬»ò¹¤×÷³öÏÖ¹ÊÕÏ£¬Keepalived½«¼ì²âµ½£¬²¢½«ÓйÊÕϵÄweb·þÎñÆ÷´ÓϵͳÖÐÌÞ³ý£¬µ±web·þÎñÆ÷¹¤×÷Õý³£ºóKeepalived×Ô¶¯½«web·þÎñÆ÷¼ÓÈëµ½·þÎñÆ÷ȺÖУ¬ÕâЩ¹¤×÷È«²¿×Ô¶¯Íê³É£¬²»ÐèÒªÈ˹¤¸ÉÉæ£¬ÐèÒªÈ˹¤×öµÄÖ»ÊÇÐÞ¸´¹ÊÕϵÄweb·þÎñÆ÷¡£

LVSµÄÓ¢ÎÄÈ«³ÆÊÇLinux Virtual Server£¬¼´LinuxÐéÄâ·þÎñÆ÷¡£

ÕâЩ¿ò¼Ü»áÔÚ½ÓÏÂÀ´µÄѧϰÖÐÒ»Ò»ÉæÁÔ¡£

RPC(Remote Procedure Call Protocol)£ºÔ¶³Ì¹ý³Ìµ÷ÓÃЭÒ飬ËüÊÇÒ»ÖÖͨ¹ýÍøÂç´ÓÔ¶³Ì¼ÆËã»ú³ÌÐòÉÏÇëÇó·þÎñ£¬¶ø²»ÐèÒªÁ˽âµ×²ãÍøÂç¼¼ÊõµÄЭÒé¡£RPCЭÒé¼Ù¶¨Ä³Ð©´«ÊäЭÒéµÄ´æÔÚ£¬ÈçTCP»òUDP£¬ÎªÍ¨ÐųÌÐòÖ®¼äЯ´øÐÅÏ¢Êý¾Ý¡£ÔÚOSIÍøÂçͨÐÅÄ£ÐÍÖУ¬RPC¿çÔ½ÁË´«Êä²ãºÍÓ¦Óòã¡£RPCʹµÃ¿ª·¢°üÀ¨ÍøÂç·Ö²¼Ê½¶à³ÌÐòÔÚÄÚµÄÓ¦ÓóÌÐò¸ü¼ÓÈÝÒס£

RPC²ÉÓÿͻ§»ú/·þÎñÆ÷ģʽ¡£ÇëÇó³ÌÐò¾ÍÊÇÒ»¸ö¿Í»§»ú£¬¶ø·þÎñÌṩ³ÌÐò¾ÍÊÇÒ»¸ö·þÎñÆ÷¡£Ê×ÏÈ£¬¿Í»§»úµ÷Óýø³Ì·¢ËÍÒ»¸öÓнø³Ì²ÎÊýµÄµ÷ÓÃÐÅÏ¢µ½·þÎñ½ø³Ì£¬È»ºóµÈ´ýÓ¦´ðÐÅÏ¢¡£ÔÚ·þÎñÆ÷¶Ë£¬½ø³Ì±£³Ö˯Ãß״ֱ̬µ½µ÷ÓÃÐÅÏ¢µÄµ½´ïΪֹ¡£µ±Ò»¸öµ÷ÓÃÐÅÏ¢µ½´ï£¬·þÎñÆ÷»ñµÃ½ø³Ì²ÎÊý£¬¼ÆËã½á¹û£¬·¢ËÍ´ð¸´ÐÅÏ¢£¬È»ºóµÈ´ýÏÂÒ»¸öµ÷ÓÃÐÅÏ¢£¬×îºó£¬¿Í»§¶Ëµ÷Óýø³Ì½ÓÊÕ´ð¸´ÐÅÏ¢£¬»ñµÃ½ø³Ì½á¹û£¬È»ºóµ÷ÓÃÖ´ÐмÌÐø½øÐС£

3.3¡¢·Ö²¼Ê½ÍøÕ¾ÖеÄÏûÏ¢»úÖÆ

ÔÚ·Ö²¼Ê½µÄÍøÕ¾ÖУ¬ÏûÏ¢»úÖÆ²»¿É»òȱ£¬ÏûÏ¢»úÖÆµÄ³öÏÖ²»½öΪÏîÄ¿µÄ½âñî×öÁ˲»¿ÉÄ¥ÃðµÄ¹²ÏÖ£¬Ò²ÎªÏûÏ¢µÄ´«µÝÌṩÁËÁíÒ»ÖÖ½â¾ö;¾¶¡£

ÔÚ³£ÓõÄÏûÏ¢»úÖÆÖУ¬ActiveMQ£¬RabbitMQµÈ¼òµ¥µÄ»ùÓÚJMS¹æ·¶µÄÏûÏ¢»úÖÆ±»¹ã·ºÓ¦Ó㬶ø×î½ü¼¸Ä꣬һÖÖ·ÇJMSµÄÏûÏ¢»úÖÆÒ²ÔÚ»¥ÁªÍøÊг¡ÉÏáÈÆð£¬ÃûΪkafka¡£

kafkaÔÚ»¥ÁªÍøÖÐ×îΪһÖÖ·ÇJMS¹æ·¶µÄÏûÏ¢»úÖÆ£¬Ó¦ÓÃÔ½À´Ô½¹ã£¬´ËÍ⣬ÔÚ´óÊý¾ÝµÄÉú̬ȦÀkafkaÒ²ÓÐһϯ֮µØ¡£kafkaºÍflume¡¢stormµÄ½áºÏÊÇʱÏÂ×îÁ÷ÐеÄÁ÷ʽ¼ÆËã¿ò¼ÜÖ®Ò»¡£

»º´æÆª

ΪʲôҪ»º´æ?

¼õÉÙÊý¾Ý¿â·ÃÎÊ(¼õÉÙÎļþIO²Ù×÷)

1.1¡¢ ¶¯Ì¬ÄÚÈÝ»º´æ

¶¯Ì¬ÄÚÈÝ»º´æ

½«¶¯Ì¬ÄÚÈݵÄHTMLÊä³ö½á¹û»º´æÆðÀ´(Ò³Ãæ»º´æ)£¬ÔÚËæºóµÄÒ»¶Îʱ¼äÄÚ£¬µ±ÓÐÓû§·ÃÎÊʱ±äÌø¹ýÖØ¸´µÄ¶¯Ì¬ÄÚÈݼÆËã¶øÖ±½ÓÊä³ö¡£

»º´æÐÅÏ¢¿ÉÒÔ±£´æÔÚÎļþϵͳÖУ¬Ò²¿ÉÒÔ±£´æÔÚÄÚ´æÖС£

ÐèҪѰÕÒºÍÅжÏÊÇ·ñ¹ýÆÚ¡£ÐèÒª¸üлº´æ¡£

¶¯Ì¬ÄÚÈÝ»º´æ¼¼Êõ CSI,SSI,ESI½éÉÜ http://my.oschina.net/coldlemon/blog/341269

¶¯Ì¬ÄÚÈݾ²Ì¬»¯

¶¯Ì¬ÄÚÈÝ»º´æ£¬ËäÈ»¿ÉÒÔ±ÜÃâÖØ¸´µÄ¼ÆË㣬µ«ÊÇÿ´Î»¹ÐèÒªµ÷Óö¯Ì¬½Å±¾µÄ½âÊÍÆ÷À´Åжϻº´æÊÇ·ñ¹ýÆÚÒÔ¼°ÈçºÎ¶ÁÈ¡»º´æ£¬ÏûºÄÁ˲»ÉÙʱ¼ä¡£

Ö±½Ó½«ÄÚÈÝÉú³ÉHTMLÎļþ£¬×ö³É¾²Ì¬Ò³Ã棬·µ»Ø¸øä¯ÀÀÆ÷¡£

²»ÊÇËùÓеÄÄÚÈݶ¼ÄÜ×ö³ÉHTML,¸Ã¼¼ÊõÖ÷ҪʹÓÃÔÚCMSµÈÄÚÈݹÜÀíϵͳÉÏ¡£

¾Ö²¿»º´æ

¶ÔÒ³Ãæ¾²Ì¬×ÊÔ´Éú³ÉHTML£¬¶¯Ì¬ÄÚÈÝʹÓÃÒì²½¼ÓÔØ(ajax)µÄ¼¼Êõ¡£

Ŀǰ¸Ã¼¼ÊõʹÓÃÔÚÖ÷Á÷µÄµçÉÌÍøÕ¾ÖС£

1.2¡¢ ä¯ÀÀÆ÷»º´æ

¶ÔÓÚһЩCSSÑùʽ¡¢Í¼Æ¬¡¢½Å±¾µÈ¾²Ì¬×ÊÔ´£¬¸æÖªä¯ÀÀÆ÷»º´æÆðÀ´£¬²»ÒªÖظ´ÇëÇó¡£

ä¯ÀÀÆ÷Ò»°ã»áÔÚÓû§µÄÎļþϵͳÖд´½¨Ò»¸öĿ¼£¬Óû§´æ·Å»º´æÎļþ£¬²¢¸øÃ¿¸ö»º´æÎļþÉÏһЩ±ØÒªµÄ±ê¼Ç£¬±ÈÈç¹ýÆÚʱ¼äµÈ¡£

IE±£´æÔÚ´ÅÅÌ£¬»ðºüÔÚʹÓôÅÅ̵ÄͬʱҲʹÓÃÁËÄڴ棬½«ÃüÖÐÂʽϸߵĻº´æÄÚÈݱ£´æÔÚÄÚ´æ¡£

ä¯ÀÀÆ÷»º´æÔ­Àí

1¡¢ µ±ä¯ÀÀÆ÷ÏòWeb·þÎñÆ÷ÇëÇóһЩÄÚÈÝÊÇ£¬Web·þÎñÆ÷ÐèÒª¸æËßä¯ÀÀÆ÷ÄÄЩÄÚÈÝ¿ÉÒÔ±»»º´æ¡£

2¡¢ ä¯ÀÀÆ÷½«¿ÉÒÔ±»»º´æµÄÄÚÈÝ»º´æÆðÀ´¡£

3¡¢ µ±Ï´ÎÇëÇóÄÚÈÝʱ£¬ä¯ÀÀÆ÷²»»áÖ±½ÓÇëÇóÄÚÈÝ£¬¶øÊÇѯÎÊWeb·þÎñÆ÷ÊÇ·ñÐèÒª¸üб¾µØ»º´æ¡£

4¡¢ Web·þÎñÆ÷×ö³öÓ¦´ð£¬ÊÇ·ñÐèÒª¸üУ¬ÈçÐèÒª¸üоͽ«×îеÄÄÚÈÝ·µ»Ø¡£

ÈçºÎ±ê¼ÇÄÄЩÄÚÈÝ¿ÉÒÔ±»»º´æ?

1¡¢ÔÚHTTPÏìÓ¦¶¼ÖÐÔö¼Ólast-modified¹Ø¼ü´Ê¼´¿É¡£

2¡¢ä¯ÀÀÆ÷·¢ËÍÇëÇóÊÇ£¬Ð¯´ø£ºIf-modied-sine: {ʱ¼ä}

3¡¢Web·þÎñÆ÷¼ì²éÎļþ×îºóÐ޸ĵÄʱ¼ä£¬ÌرðÊǾ²Ì¬Îļþ£¬Ö»ÐèÒªÅжÏÁ½¸öʱ¼äÊÇ·ñÒ»Ö¡£Èç¹ûûÓÐÐÞ¸Ä Ð¯´ø£ºHTTP/1.1 304 Not Modified

304Òâζ×ÅûÓÐÐ޸ġ£

ÁíÒ»ÖÖ·½·¨£º(ETag)

1¡¢ ÓÉ·þÎñÆ÷¶ËΪÎļþÉú³ÉÒ»¸ö±êʶºÅ £¬·ÅÔÚHTTPÏìӦͷÖÐ

ETag£º“744177-b-21aa21cd232ee34”

2¡¢ ä¯ÀÀÆ÷ÔÚÏ´ÎÇëÇóµÄʱºò£¬Ð¯´øETag

If –node-match: 744177-b-21aa21cd232ee34

3¡¢ Web·þÎñÆ÷ÖØÐ¼ÆËãÎļþµÄETAG£¬È»ºóÓë½ÓÊܵ½µÄETG±È½Ï¡£Èç¹ûͬ£¬¼°·µ»Ø304£¬²»Í¬¾Í·µ»ØÐµÄÄÚÈÝ¡£

ÓÐûÓÐ×îÓŽâ?

Ö±½Ó¸øÎļþ±ê¼ÇExpires,ÊÇ·ñ¹ýÆÚ¡£

¶ÔÓÚ¾²Ì¬ÄÚÈÝ£¬Web·þÎñÆ÷ĬÈÏÇé¿öÏ»ؿªÆôExpires±ê¼Ç£¬ä¯ÀÀÆ÷²»ÐèÒªÖØ¸´ÇëÇó¡£

¹È¸èÈÕÀúµÄCSSÑùʽ±íÉèÖõÄexpires Ϊ1Ä꣬js½Å±¾ÉèÖÃΪ1¸öÔ¡£

Http://www.baidu.com/css/1.css?v=2

Apache·þÎñÆ÷ÈçºÎÉèÖÃjs css ͼƬµÈÔÚ±¾µØ»º´æ

ÅäÖÃÎļþÖдò¿ª¹ýÆÚÀ©Õ¹#LoadModule expires_module modules/mod_expires.so

ÔÚ.htaccessÖмÓÈëExpiresActive On ExpiresDefault "access plus 30 days"

1.3¡¢ Web·þÎñÆ÷»º´æ

»º´æURLÓ³Éä

½«urlµØÖ·×ª»»³É×ÊԴ·¾¶

www.baidu.com/12306.html à /data/www/12306.html

¾­rewriteÖØÐ´µÄµØÖ·Ö¸Ïò¶ÔÓ¦µÄ¾²Ì¬×ÊԴ·¾¶

www.baidu.com/12306.html à /data/www/product/12306.html

¾­rewriteÖØÐ´µÄµØÖ·Ö¸Ïò¶ÔÓ¦µÄ¶¯Ì¬×ÊÔ´µØÖ·

www.baidu.com/12306.html à www.baidu.com/?prodcutId=12306

»º´æURL ÖØÐ´µ½Real ServerµÄÕæÊµµØÖ·

www.baidu.com/12306.html à www.back-end.com/?prodcutId=12306

»º´æÏìÓ¦ÄÚÈÝ

»º´æ¾²Ì¬Îļþ

»º´æ±ä¸ü½ÏСµÄ¶¯Ì¬×ÊÔ´

»º´æÓÐЧÆÚ¿ØÖÆ£¬ºÍHTTP»º´æÒ»ÑùµÄÂß¼­¡£ÉèÖÃexpire¼´¿É¡£

»º´æ´æ·ÅÔÚÄÄÀï?¿ªÆô´ÅÅÌ»º´æ»òÕßÄڴ滺´æ¡£

»º´æÎļþÃèÊö·û

´óÁ¿¾²Ì¬µÄСÎļþ£¬ÐèÒª´ò¿ª¡£Ã¿¸öÎļþÕ¼ÓÃÒ»¸öÎļþÃèÊö·û¡£

¿ÉÒÔ½«ÎļþÃèÊö·û»º´æÔÚÄÚ´æÖУ¬µ±ÐèÒª·ÃÎÊÕâ¸öÎļþʱ£¬Ö±½Ó¶ÔÓ¦µ½ÎļþÃèÊö·û¡£

ApacheÖйØÓÚÒ³Ãæ»º´æµÄÉèÖÃ

http://www.cnblogs.com/yyyyy5101/articles/1899350.html

1.4¡¢ ·´Ïò´úÀí»º´æ

ÕýÏò´úÀí£º

Óû§Ö÷¶¯Ê¹ÓôúÀí·þÎñ£¬·þÎñÆ÷²»ÖªµÀÓû§ÔÚÄÄÀï¡£Web·þÎñÆ÷Ö»ÖªµÀ´úÀí·þÎñÆ÷»òÕßÍø¹Ø·¢À´µÄÇëÇ󣬲¢²»ÖªµÀÄ»ºó»¹´æÔÚ²Ù×÷Õß

·´Ïò´úÀí£º

·´Ïò´úÀí·þÎñÆ÷µÄÌØµãÓëÕýÏò´úÀíÕýºÃÏà·´£¬Web·þÎñÆ÷Òþ²ØÔÚ´úÀí·þÎñÆ÷Ö®ºó¡£

·´Ïò´úÀíµÄÌØµã

µ÷¶ÈÆ÷°çÑݵÄÊÇÓû§ºÍʵ¼Ê·þÎñÆ÷ÖмäÈ˵ĽÇÉ«£º

1¡¢ÈκζÔÓÚʵ¼Ê·þÎñÆ÷µÄHTTPÇëÇó¶¼±ØÐë¾­¹ýµ÷¶ÈÆ÷

2¡¢µ÷¶ÈÆ÷±ØÐëµÈ´ýʵ¼Ê·þÎñÆ÷µÄHTTPÏìÓ¦£¬²¢½«Ëü·´À¡¸øÓû§

ÄÚÈÝ»º´æ

ÕýÏò´úÀí·þÎñÆ÷¿ÉÒÔÉèÖûº´æ£¬±ÈÈçÒ»¸ö»ú¹¹ÄÚ²¿ÍøÂçͨ¹ý´úÀíÉÏÍø£¬Ò»µ©Ä³¸öÓû§·ÃÎʵÄÍøÒ³±»»º´æÔÚ´úÀí·þÎñÆ÷£¬ÄÚ²¿ÍùÀ´µÄÆäËûÓû§¾Í¿ÉÒÔ¿ìËٵĻñµÃÕâ¸öÍøÒ³¡£

·´Ïò´úÀí·þÎñÆ÷ͬÑù¿ÉÒÔ»º´æÄÚÈÝ£¬ËùÓеĻº´æ»úÖÆÊ¹ÓÃÈÔÈ»ÊÇʹÓÃHTTP/1.1ЭÒé¡£ºÍWEB·þÎñÆ÷»º´æ¡¢ä¯ÀÀÆ÷»º´æÒ»Ñù¡£ÔÚÑ¡Ó÷´Ïò´úÀí·þÎñÆ÷ÅäÖü´¿É¡£

Ïê¼ûNginx·´Ïò´úÀíµÄÅäÖÃÒ»Ïî¡£

1.5¡¢Ó¦ÓÃÂß¼­»º´æ

½«¶¯Ì¬ÄÚÈÝÖзÃÎÊÊý¾Ý¿âµÄ²Ù×÷£¬ÌáÈ¡µ½ÄÚ´æÊý¾Ý¿âÖУ¬±ÈÈçRedis£¬¼õÉÙÊý¾Ý¿â·ÃÎʵĴÎÊý£¬¼´¼õÉÙÎļþIO²Ù×÷¡£

ʵ¼ÊµÄ²Ù×÷ÖУ¬¿ÉÒÔ½«Óû§»ù´¡ÐÅÏ¢¡¢ÉÌÆ·µÄ»ù´¡ÐÅÏ¢¡¢ÊÕ»õµØÖ·¡¢¹ºÎï³µÊý¾Ý¡¢ÀúÊ·¹ºÂò¼Ç¼£¬±£´æÔÚRedisÖС£

½«´ó×ֶα£´æÔÚMongodb(·Ö²¼Ê½Îĵµ´æ´¢Êý¾Ý¿â)¡£

ÊÇÎÒÃÇÄܹ»×Ô¶¨ÒåµÄ£¬Ïê¼ûRedisÊý¾Ý½á¹¹¼°°¸Àý·ÖÏí

1.6¡¢Êý¾Ý¿â²éѯ»º´æ

µ±ÄãµÄÊý¾Ý¿â´ò¿ªÁËQuery Cache(¼ò³ÆQC)¹¦Äܺó£¬Êý¾Ý¿âÔÚÖ´ÐÐSELECTÓï¾äʱ£¬»á½«²éѯ½á¹û·Åµ½QCÖУ¬µ±ÏÂÒ»´Î´¦ÀíͬÑùµÄSELECTÇëÇóʱ£¬Êý¾Ý¿â¾Í»á´ÓQCÈ¡µÃ½á ¹û£¬¶ø²»ÐèҪȥÊý¾Ý±íÖвéѯ¡£

mysqlµÄcache¹¦ÄܵÄkeyµÄÉú³ÉÔ­ÀíÊÇ£º°ÑselectÓï¾ä°´ÕÕÒ»¶¨µÄhash¹æÔòÉú³ÉΨһµÄkey£¬selectµÄ½á¹ûÉú³Évalue£¬¼´ key=>value¡£

×¢Ò⣬ËùÒÔ¶ÔÓÚcache¶øÑÔ£¬selectÓï¾äÊÇÇø·Ö´óСдµÄ£¬Ò²Çø·Ö¿Õ¸ñµÄ¡£Á½¸öselectÓï¾ä±ØÐëÍêÍêȫȫһÖ£¬²ÅÄܹ»»ñÈ¡µ½Í¬Ò»¸öcache¡£

Éú³ÉcacheÖ®ºó£¬Ö»Òª¸ÃselectÖÐÉæ¼°µ½µÄtableÓÐÈκεÄÊý¾Ý±ä¶¯(insert£¬update£¬delete²Ù×÷µÈ),Ïà¹ØµÄËùÓÐcache¶¼»á±»É¾³ý¡£

Òò´ËÖ»ÓÐÊý¾ÝºÜÉٱ䶯µÄtable£¬ÒýÈëmysql µÄcache²Å½ÏÓÐÒâÒå

1.7¡¢Ç°¶ËÓÅ»¯

1¡¢Éè¼Æ¸ü¼Ó¼òµ¥µÄÍøÒ³£¬Ê±ÆÚ°üº¬½ÏÉÙµÄͼƬºÍ½Å±¾£¬ÎþÉüÃÀ¹ÛºÍ½»»¥

2¡¢½«¶à¸öͼƬºÏ²¢ÎªÒ»¸öÎļþ£¬Ê¹ÓÃCSS±³¾°Æ«ÒƵļ¼Êõ³ÊÏÖ

3¡¢ºÏ²¢JavaScript½Å±¾»òÕßCSSÑùʽ±í£¬¼õÉÙä¯ÀÀÆ÷ÏÂÔØ´ÎÊý

4¡¢³ä·ÖÀûÓÃHTTPÖеÄä¯ÀÀÆ÷Cache²ßÂÔ£¬¼õÉÙÖØ¸´ÏÂÔØ¡£

5¡¢½«ÍøÕ¾×ÊÔ´·Ö²¼ÔÚ¶à¸öÓòÃû֮ϣ¬Ôö¼Óä¯ÀÀÆ÷µÄ²¢·¢ÏÂÔØ¡£

ĬÈÏÇé¿öÏ£¬ä¯ÀÀÆ÷¶ÔÒ»¸öÓòÃûϵÄ×ÊÔ´ÏÂÔØÓв¢·¢Êý¾ÝÏÞÖÆ£¬´Ó2-6²»µÈ¡£

ͨ¹ý½«cssÑùʽ£¬Í¼Æ¬£¬js´úÂë·ÅÔÚ²»Í¬µÄÓòÃûÏ£¬¿ÉÒÔÔö¼Ó²¢·¢¡£

¸ºÔؾùºâƪ

2.1¡¢Web¸ºÔؾùºâ

²»ÄÜÏÁÒ嵨Àí½âΪ·ÖÅ䏸ËùÓÐʵ¼Ê·þÎñÆ÷Ò»Ñù¶àµÄ¹¤×÷Á¿£¬ÒòΪ¶ą̀·þÎñÆ÷µÄ³ÐÔØÄÜÁ¦¸÷²»Ïàͬ£¬Õâ¿ÉÄÜÌåÏÖÔÚÓ²¼þÅäÖá¢ÍøÂç´ø¿íµÄ²îÒ죬Ҳ¿ÉÄÜÒòΪij̨·þÎñÆ÷Éí¼æ¶àÖ°£¬ÎÒÃÇËù˵µÄ“¾ùºâ”£¬Ò²¾ÍÊÇÏ£ÍûËùÓзþÎñÆ÷¶¼²»Òª¹ýÔØ£¬²¢ÇÒÄܹ»×î´ó³ÌÐòµØ·¢»Ó×÷Óá£

½Ó¿ÚÈ˹ÊÊÂ

¹«Ë¾ÓÐÍŶÓ£¬¸÷¾¡ÆäÄÜ£¬¹¤×÷Á¿Ôö¼Ó£¬Íâ°ü¡£

Íâ°ü½Ó¿ÚÈ˹ÜÀí£¬½Ó¿ÚÈËÐݼÙÈÎÎñÎÞ·¨¹µÍ¨£¬µ¥µã¹ÊÕÏ¡£ÖúÀí¡£

½Ó¿ÚÈ˹¤×÷Á¿·ÖÅ䣬ÓеÄÍâ°ü¹«Ë¾ÈÎÎñ¶à£¬ÈÎÎñÉÙ£¬ÄÜÁ¦²î£¬ÄÜÁ¦Ç¿¡£(¸ºÔؾùºâ)

2.1.1¡¢HTTPÖØ¶¨Ïò

HttpÖØ¶¨Ïò£¬Ëü¿ÉÒÔ½«HTTPÇëÇó½øÐÐ×ªÒÆ£¬ÔÚWeb¿ª·¢ÖÐÎÒÃǾ­³£»áÓÃËüÀ´Íê³É×Ô¶¯Ìø×ª£¬±ÈÈçÓû§µÇ½³É¹¦ºóÌø×ªµ½ÏàÓ¦µÄ¹ÜÀíÒ³Ãæ¡£

ÕâÖÖÖØ¶¨ÏòÍêÈ«ÓÉHTTP¶¨Ò壬²¢ÇÒÓÉHTTP´úÀíºÍWeb·þÎñÆ÷¹²Í¬ÊµÏÖ¡£Ô­ÀíÈçÏ£º

1¡¢ µ±HTTP´úÀí(ä¯ÀÀÆ÷)ÏòWeb·þÎñÆ÷ÇëÇóij¸öURLºó£¬Web·þÎñÆ÷¿ÉÒÔͨ¹ýHTTPµÄÏìӦͷÐÅÏ¢ÖеÄlocation±ê¼ÇÀ´·µ»ØÒ»¸öеÄURL

2¡¢ HTTP´úÀí(ä¯ÀÀÆ÷)½ÓÊÕµ½ÏìӦͷÖеÄlocation±ê¼Ç£¬»á½Ó×ÅÇëÇólocationÖÐURL£¬±ãÍê³ÉÁË×Ô¶¯Ìø×ª¡£

°¸Àýչʾ£º

http://www.php.net/downloads.php

http://php.net/get/php-7.0.2.tar.bz2/from/a/mirror

³ýÁ˰´ÕÕµØÓò¾Í½ü·ÖÅäÍ⣬»¹¿ÉÒÔʹÓÃÂÖѯ(Round Robin)µÄ·½Ê½ÇëÇó·½Ê½´òµ½²»Í¬µÄÓòÃûÉÏ£¬»¹ÒÔʹÓÃËæ»ú·ÖÅäµÈ²ßÂÔ¡£

Ëæ×ÅÍÌÍÂÂʵÄÔö¼Ó£¬Ëæ»úµ÷¶ÈÒ²»áÖð½¥Ç÷½üÓÚ˳Ðòµ÷¶ÈµÄ¾ùºâЧ¹û¡£

½áÂÛ£º

²»Í¬Óû§¶ÔÕ¾µãÄÚÒ³µÄ·ÃÎÊÉî¶ÈÊDz»Í¬µÄ£¬Ò²ÊÇÎÒÃÇÎÞ·¨¿ØÖƵģ¬Èç´Ë£¬¶ą̀ʵ¼Ê·þÎñÆ÷µÄʵ¼Ê¸ºÔزîÒìÊDz»¿ÉÔ¤ÁϵÄ£¬¶øÖ÷Õ¾µãÈ´¶Ô´ËÒ»ÎÞËùÖª¡£

ËùÒÔ£¬ÔÚ´ó¶àÊýÇé¿öÏÂͨ¹ýÖØ¶¨ÏòÀ´ÊµÏÖÕû¸öÕ¾µãµÄ¸ºÔؾùºâ²¢²»ÄÇôÈÃÈËÂúÒâ¡£µ«¶ÔÓÚÎļþÏÂÔØ¡¢¹ã¸æÕ¹Ê¾µÈÒ»´ÎÐÔµÄÇëÇó£¬Ö÷Õ¾µãµ÷¶È³ÌÐò¿ÉÒÔÀÎÀΰÑÎÕ¿ØÖÆ£¬Êµ¼Ê·þÎñÆ÷µÄURLÉõÖÁ¿ÉÒÔº¬ÐîµÄÒþ²ØÆðÀ´¡£

ÔÚʵ¼ÊµÄµÄʹÓÃÖУ¬¶ÔÓÚ²»Í¬µÄÓ¦Óó¡¾°£¬ÎÒÃÇÈÔÈ»ÐèÒªÈÏÕæ¿¼ÂÇ»ùÓÚÖØ¶¨ÏòµÄ¸ºÔؾùºâÊÇ·ñÊÊÓã¬È¨ºâ×ªÒÆÇëÇóµÄ¿ªÏúºÍʵ¼ÊÇëÇóµÄ¿ªÏú£¬Ç°ÕߵĿªÏúԽС£¬Ô½ÓÐÒâÒå¡£

2.1.2¡¢DNS¸ºÔؾùºâ

ÎÒÃÇÖªµÀDNS¸ºÔðÌṩÓòÃû½âÎö£¬µ±ÎÒÃÇ·ÃÎÊij¸öÕ¾µãʱ£¬Êµ¼ÊÉÏÐèҪͨ¹ý¸ÃÕ¾µãµÄÓòÃûµÄDNS·þÎñÆ÷À´»ñÈ¡ÓòÃûÖ¸¶¨µÄIPµØÖ·£¬ÕâÒ»¹ý³ÌÖУ¬DNS·þÎñÆ÷Íê³ÉÁËÓòÃûµ½IPµØÖ·µÄÓ³É䣬ÕâÖÖÓ³ÉäÒ²ÊÇÒ»¶Ô¶àµÄ¡£

Õâʱºò£¬DNS±ã³äµ±Á˸ºÔؾùºâµ÷¶ÈÆ÷£¬ÈçͬHTTPµÄÇëÇóÒ»Ñù£¬Æðµ½ÁËÖØ¶¨×ªÒƲßÂÔ¡£

¶à¸öA¼Ç¼

ÔÚDNSµÄ¸÷ÖּǼÀàÐÍÖУ¬A¼Ç¼ÓÃÀ´Ö¸¶¨ÓòÃû¶ÔÓ¦µÄIPµØÖ·¡£

³£¼ûµÄ±È½Ï³ÉÊìµÄDNSϵͳÈçlinuxµÄbind£¬windowsµÄDNS·þÎñ¶¼Ö§³ÖÒ»¸öÓòÃûÖ¸¶¨¶à¸öIPµØÖ·£¬²¢ÇÒ¿ÉÒÔÑ¡ÔñʹÓø÷ÖÖµ÷¶È²ßÂÔ£¬³£¼ûµÄ±ãÊÇRR(Round Robin)·½Ê½¡£

ÏÂͼÖаٶÈʹÓõÄ×î½üµØÓò(¸ù¾ÝÓû§µÄIPµØÖ·ÖÇÄܽâÎö)

ÔÚlinuxÏÂʹÓÃÃüÁ dig baidu.com

Ò»°ãÇé¿öÏ£¬¿ÉÒÔ¸øÓòÃû°ó¶¨¶à¸öA¼Ç¼£¬ÔÚʵ¼ÊµÄʹÓÃÖУ¬½¨ÒéÈçÏÂÅäÖãºÏÈΪÿ¸öÓòÃûÅäÖöà¸öCNAME,È»ºó¸øCNAMEÖ¸¶¨µÄÓòÃûÅäÖÃA¼Ç¼¡£ÕâÑùÖÁÉÙÄܼæ¹ËÁ½¸öÎÊÌ⣺

1¡¢ ÀÏÓû§Èç¹ûÊÕ²ØÁËÄãµÄwww1.baidu.comµÄÓòÃû£¬»¹ÄܼÌÐøÌṩ·þÎñ¡£

2¡¢ µ±ÄãÓµÓкܶàDNS¼Ç¼ʱ£¬ÕâÑù×ö¸üÈÝÒ×ά»¤¡£±ÈÈ磬ÄãÏ£Íû¶à¸ö¶þ¼¶ÓòÃû¶¼Ö¸Ïòͬһ¸öIPµØÖ·£¬ÄÇôÄãÖ»ÐèÒªÌí¼ÓÒ»¸ö±ðÃûÀ´´úÌæIPµØÖ·£¬Ëæºóµ±ÄãÐèÒªÐÞ¸ÄIPµØÖ·£¬Ö»ÐèÒªÐ޸ıðÃûµÄIPµØÖ·¼´¿É¡£

½áÂÛ£º

DNS¸ºÔؾùºâµÄʵÏÖÖ÷ÒªÒÀÀµDNS·þÎñÆ÷µÄÉèÖã¬Èç¹ûÄãµÄÕ¾µãÓµÓÐ×Ô¼ºµÄDNS·þÎñÆ÷£¬ÄÇôÒÔÉÏÉèÖöÔÓÚDNS¹ÜÀíÔ±À´Ëµ£¬²¢²»À§ÄÑ£¬µ«ÊÇ£¬´ó¶àÊýÕ¾µãÈÔȻʹÓõÚÈý·½DNS·þÎñÉÌ£¬ÐÒÔ˵ÄÊÇ£¬ÏÖÔÚÓкܶàDNS·þÎñÉÌÍêȫ֧³Ö¶à¸öA¼Ç¼µÄÂÖѯÉèÖã¬ÎÒÃÇ¿ÉÒÔ¸ù¾ÝÐèÒªÉèÖá£

¶Ô±ÈHTTPÖØ¶¨Ïò

ºÍÇ°ÃæHTTPÖØ¶¨ÏòÏà±È£¬»ùÓÚDNSµÄ·½°¸ÍêÈ«½ÚÊ¡ÁËËùνµÄÖ÷Õ¾µã£¬»òÕß˵DNS·þÎñÆ÷ÒѾ­³äµ±ÁËÖ÷Õ¾µãµÄÖ°Ôð¡£

²»¹ý£¬¾¡¹Ü»ùÓÚHTTPÖØ¶¨ÏòµÄ¸ºÔؾùºâϵͳÊܵ½Ö÷Õ¾µãÐÔÄܵÄÖÆÔ¼£¬µ«ÊDz»¿É·ñÈÏÖØ¶¨ÏòµÄ·½°¸Öеĵ÷¶È²ßÂÔ¾ßÓзdz£ºÃµÄÁé»îÐÔ£¬ÍêÈ«¿ÉÒÔͨ¹ýWebÓ¦ÓóÌÐòʵÏÖÈÎÎñºÍÄãÄÜÏëµ½µÄµ÷¶È²ßÂÔ¡£

Ïà±È֮ϣ¬ÎªDNS·þÎñÆ÷Èÿª·¢×Ô¶¨ÒåµÄµ÷¶È²ßÂԾͲ»ÊÇÄÇôÈÝÒ×ÁË£¬µ«ÐÒÔ˵ÄÊÇ£¬ÀàËÆlinux bindÕâÑùµÄDNS·þÎñÈí¼þÌṩÁ˷ḻµÄµ÷¶È²ßÂÔ¹©ÄãÑ¡Ôñ£¬ÆäÖÐ×î³£ÓõľÍÊǸù¾ÝÓû§IPÀ´½øÐÐÖ»ÄܽâÎö(ÉÏÎÄÖеİٶȾÍÊÇÈç´Ë)£¬ÕâÒâζ×ÅDNS·þÎñÆ÷¿ÉÒÔÔÙËùÓпÉÓõÄA¼Ç¼ÖÐѰÕÒÓû§×î½üµÄһ̨·þÎñÆ÷¡£

ÈçºÎÀûÓÃÕâÖÖ²ßÂÔ£¬Íêȫȡ¾öÓÚÒµÎñµÄ×´¿ö£¬¿ÉÒÔΪÓû§±È½Ï¼¯ÖеĵÄһЩ³ÇÊÐÌṩרÓõķþÎñÆ÷£¬½ÓÈë³ÇÊкËÐĽڵã¡£Ò²¿ÉÒÔΪΪ¸÷»¥ÁªÍøÔËÓªÉÌÍøÂçÖеÄÓû§ÌṩרÓõķþÎñÆ÷(ÁªÍ¨µÄ¹éÁªÍ¨£¬µçÐŵĹéµçÐÅ)£¬²¢½ÓÈëÔËÓªÉ̹ǸÉÍøÂç¡£

2.1.3¡¢·´Ïò´úÀí¸ºÔØ¾ùºâ

¼¸ºõËùÓÐÖ÷Á÷µÄWeb·þÎñÆ÷¶¼ÈÈÖÔÓÚÖ§³Ö»ùÓÚ·´Ïò´úÀíµÄ¸ºÔؾùºâ¡£ËüµÄºËÐŤ×÷¾ÍÊÇת·¢HTTPÇëÇó¡£

Ïà±ÈÇ°ÃæµÄHTTPÖØ¶¨ÏòºÍDNS½âÎö£¬·´Ïò´úÀíµÄµ÷¶ÈÆ÷°çÑݵÄÊÇÓû§ºÍʵ¼Ê·þÎñÆ÷ÖмäÈ˵ĽÇÉ«£º

1¡¢ÈκζÔÓÚʵ¼Ê·þÎñÆ÷µÄHTTPÇëÇó¶¼±ØÐë¾­¹ýµ÷¶ÈÆ÷

2¡¢µ÷¶ÈÆ÷±ØÐëµÈ´ýʵ¼Ê·þÎñÆ÷µÄHTTPÏìÓ¦£¬²¢½«Ëü·´À¡¸øÓû§

ÌØÐÔ£º

1¡¢µ÷¶È²ßÂԷḻ¡£ÀýÈç¿ÉÒÔΪ²»Í¬µÄʵ¼Ê·þÎñÆ÷ÉèÖò»Í¬µÄÈ¨ÖØ£¬ÒÔ´ïµ½ÄÜÕß¶àÀ͵ÄЧ¹û¡£

2¡¢¶Ô·´Ïò´úÀí·þÎñÆ÷µÄ²¢·¢´¦ÀíÄÜÁ¦ÒªÇó¸ß£¬ÒòΪËü¹¤×÷ÔÚHTTP²ãÃæ¡£

3¡¢·´Ïò´úÀí·þÎñÆ÷½øÐÐת·¢²Ù×÷±¾ÉíÊÇÐèÒªÒ»¶¨¿ªÏúµÄ£¬±ÈÈç´´½¨Ï̡߳¢Óëºó¶Ë·þÎñÆ÷½¨Á¢TCPÁ¬½Ó¡¢½ÓÊÕºó¶Ë·þÎñÆ÷·µ»ØµÄ´¦Àí½á¹û¡¢·ÖÎöHTTPÍ·²¿ÐÅÏ¢¡¢Óû§¿Õ¼äºÍÄں˿ռäµÄƵ·±Çл»µÈ£¬ËäÈ»Õⲿ·Öʱ¼ä²¢²»³¤£¬µ«Êǵ±ºó¶Ë·þÎñÆ÷´¦ÀíÇëÇóµÄʱ¼ä·Ç³£¶Ìʱ£¬×ª·¢µÄ¿ªÏú¾ÍÏÔµÃÓÈΪͻ³ö¡£ÀýÈçÇëÇó¾²Ì¬Îļþ£¬¸üÊʺÏʹÓÃÇ°Ãæ½éÉܵĻùÓÚDNSµÄ¸ºÔؾùºâ·½Ê½¡£

4¡¢·´Ïò´úÀí·þÎñÆ÷¿ÉÒÔ¼à¿Øºó¶Ë·þÎñÆ÷£¬±ÈÈçϵͳ¸ºÔØ¡¢ÏìӦʱ¼ä¡¢ÊÇ·ñ¿ÉÓá¢TCPÁ¬½ÓÊý¡¢Á÷Á¿µÈ£¬´Ó¶ø¸ù¾ÝÕâЩÊý¾Ýµ÷Õû¸ºÔؾùºâµÄ²ßÂÔ¡£

5¡¢·´Éä´úÀí·þÎñÆ÷¿ÉÒÔÈÃÓû§ÔÚÒ»´Î»á»°ÖÜÆÚÄÚµÄËùÓÐÇëÇóʼÖÕת·¢µ½Ò»Ì¨Ìض¨µÄºó¶Ë·þÎñÆ÷ÉÏ(Õ³ÖͻỰ)£¬ÕâÑùµÄºÃ´¦Ò»ÊDZ£³ÖsessionµÄ±¾µØ·ÃÎÊ£¬¶þÊÇ·ÀÖ¹ºó¶Ë·þÎñÆ÷µÄ¶¯Ì¬Äڴ滺´æµÄ×ÊÔ´ÀË·Ñ

2.1.4¡¢IP¸ºÔؾùºâ

ÒòΪ·´Ïò´úÀí·þÎñÆ÷¹¤×÷ÔÚHTTP²ã£¬Æä±¾ÉíµÄ¿ªÏú¾ÍÒѾ­ÑÏÖØÖÆÔ¼ÁË¿ÉÀ©Õ¹ÐÔ£¬´Ó¶øÒ²ÏÞÖÆÁËËüµÄÐÔÄܼ«ÏÞ¡£ÄÇÄÜ·ñÔÚHTTP²ãÃæÒÔÏÂʵÏÖ¸ºÔؾùºâÄØ?

NAT·þÎñÆ÷:Ëü¹¤×÷ÔÚ´«Êä²ã£¬Ëü¿ÉÒÔÐ޸ķ¢ËÍÀ´µÄIPÊý¾Ý°ü£¬½«Êý¾Ý°üµÄÄ¿±êµØÖ·ÐÞ¸ÄΪʵ¼Ê·þÎñÆ÷µØÖ·¡£

´Ó Linux2.4Äں˿ªÊ¼£¬ÆäÄÚÖõÄNeftilterÄ£¿éÔÚÄÚºËÖÐά»¤×ÅһЩÊý¾Ý°ü¹ýÂ˱í£¬ÕâЩ±í°üº¬ÁËÓÃÓÚ¿ØÖÆÊý¾Ý°ü¹ýÂ˵ĹæÔò¡£¿ÉϲµÄÊÇ£¬LinuxÌṩÁËiptablesÀ´¶Ô¹ýÂË±í½øÐвåÈë¡¢Ð޸ĺÍɾ³ýµÈ²Ù×÷¡£¸ü¼ÓÁîÈËÕñ·ÜµÄÊÇ£¬Linux2.6.xÄÚºËÖÐÄÚÖÃÁËIPVSÄ£¿é£¬ËüµÄ¹¤×÷ÐÔÖÊÀàÐÍÓÚNetfilterÄ£¿é£¬²»¹ýËü¸üרעÓÚʵÏÖIP¸ºÔؾùºâ¡£

×ܽ᣺

ʵÑéÖ¤Ã÷ʹÓûùÓÚNATµÄ¸ºÔؾùºâϵͳ¡£×÷Ϊµ÷¶ÈÆ÷µÄNAT·þÎñÆ÷¿ÉÒÔ½«ÍÌÍÂÂÊÌáÉýµ½Ò»¸öеĸ߶È£¬¼¸ºõÊÇ·´Ïò´úÀí·þÎñÆ÷µÄÁ½±¶ÒÔÉÏ£¬Õâ´ó¶à¹é¹¦ÓÚÔÚÄÚºËÖнøÐÐÇëÇóת·¢µÄ½ÏµÍ¿ªÏú¡£µ«ÊÇÒ»µ©ÇëÇóµÄÄÚÈݹý´óʱ£¬²»ÂÛÊÇ»ùÓÚ·´Ïò´úÀí»¹ÊÇNAT£¬¸ºÔؾùºâµÄÕûÌåÍÌÍÂÁ¿¶¼²î¾à²»´ó£¬Õâ˵Ã÷¶ÔÓÚһЩ¿ªÏú½Ï´óµÄÄÚÈÝ£¬Ê¹Óüòµ¥µÄ·´Ïò´úÀíÀ´´î½¨¸ºÔؾùºâϵͳÊÇÖµ¿¼ÂǵÄ¡£

ʹÓòßÂÔ£º

Ò»¸ö¼òµ¥ÓÐЧµÄ°ì·¨¾ÍÊǽ«»ùÓÚNATµÄ¼¯ÈººÍÇ°ÃæµÄDNS»ìºÏʹÓ㬱ÈÈç5¸ö100Mbps³ö¿Ú¿í´øµÄ¼¯Èº£¬È»ºóͨ¹ýDNSÀ´½«Óû§ÇëÇó¾ùºâµØÖ¸ÏòÕâЩ¼¯Èº£¬Í¬Ê±£¬Ä㻹¿ÉÒÔÀûÓÃDNSÖÇÄܽâÎöʵÏÖµØÓò¾Í½ü·ÃÎÊ¡£ÕâÑùµÄÅäÖöÔÓÚ´ó¶àÊýÒµÎñÊÇ×ã¹»ÁË£¬µ«ÊǶÔÓÚÌṩÏÂÔØ»òÊÓÆµµÈ·þÎñµÄ´ó¹æÄ£Õ¾µã£¬NAT·þÎñÆ÷»¹ÊDz»¹»³öÉ«

2.1.5¡¢Ö±½Ó·ÓÉ

NATÊǹ¤×÷ÔÚÍøÂç·Ö²ãÄ£Ð͵Ĵ«Êä²ã(µÚËIJã)£¬¶øÖ±½Ó·ÓÉÊǹ¤×÷ÔÚÊý¾ÝÁ´Â·²ã(µÚ¶þ²ã)£¬Ã²ËƸüŒÅЩ¡£Ëüͨ¹ýÐÞ¸ÄÊý¾Ý°üµÄÄ¿±êMACµØÖ·(ûÓÐÐÞ¸ÄÄ¿±êIP)£¬½«Êý¾Ý°üת·¢µ½Êµ¼Ê·þÎñÆ÷ÉÏ£¬²»Í¬µÄÊÇ£¬Êµ¼Ê·þÎñÆ÷µÄÏìÓ¦Êý¾Ý°ü½«Ö±½Ó·¢Ë͸ø¿Í»§¶Ë£¬¶ø²»¾­¹ýµ÷¶ÈÆ÷¡£

2.1.6¡¢IPËíµÀ

»ùÓÚIPËíµÀµÄÇëÇóת·¢»úÖÆ£º½«µ÷¶ÈÆ÷ÊÕµ½µÄIPÊý¾Ý°ü·â×°ÔÚÒ»¸öеÄIPÊý¾Ý°üÖУ¬×ª½»¸øÊµ¼Ê·þÎñÆ÷£¬È»ºóʵ¼Ê·þÎñÆ÷µÄÏìÓ¦Êý¾Ý°ü¿ÉÒÔÖ±½Óµ½´ïÓû§¶Ë¡£Ä¿Ç°Linux´ó¶àÖ§³Ö£¬¿ÉÒÔÓÃLVSÀ´ÊµÏÖ£¬³ÆÎªLVS-TUN£¬ÓëLVS-DR²»Í¬µÄÊÇ£¬Êµ¼Ê·þÎñÆ÷¿ÉÒԺ͵÷¶ÈÆ÷²»ÔÚͬһ¸öWANtÍø¶Î£¬µ÷¶ÈÆ÷ͨ¹ý IPËíµÀ¼¼ÊõÀ´×ª·¢ÇëÇóµ½Êµ¼Ê·þÎñÆ÷£¬ËùÒÔʵ¼Ê·þÎñÆ÷Ò²±ØÐëÓµÓкϷ¨µÄIPµØÖ·¡£

×ÜÌåÀ´Ëµ£¬LVS-DRºÍLVS-TUN¶¼ÊʺÏÏìÓ¦ºÍÇëÇ󲻶ԳƵÄWeb·þÎñÆ÷£¬ÈçºÎ´ÓËüÃÇÖÐ×ö³öÑ¡Ôñ£¬È¡¾öÓÚÄãµÄÍøÂ粿ÊðÐèÒª£¬ÒòΪLVS-TUN¿ÉÒÔ½«Êµ¼Ê·þÎñÆ÷¸ù¾ÝÐèÒª²¿ÊðÔÚ²»Í¬µÄµØÓò£¬²¢ÇÒ¸ù¾Ý¾Í½ü·ÃÎʵÄÔ­ÔòÀ´×ªÒÆÇëÇó£¬ËùÒÔÓÐÀàËÆÕâÖÖÐèÇóµÄ£¬¾ÍÓ¦¸ÃÑ¡ÔñLVS-TUN¡£

2.1.7¡¢¸ºÔؾùºâ×ܽá

l HTTPÖØ¶¨Ïò¸ºÔؾùºâ£¬Í¨¹ýHTTPЭÒé½øÐÐת·¢£¬³£Óõļ¼ÊõµãÊÇÒ»´ÎÐÔÏÂÔØ¡£·ÖÅä²ßÂÔ×Ô¼º¶¨Òå¡£

l DNS¸ºÔؾùºâ£¬Í¨¹ýDNS·þÎñÆ÷¶ÔÓòÃû½øÐнâÎö£¬°´ÕÕÒ»¶¨µÄ·ÖÅä²ßÂÔ½øÐзÖÅ䣬Èç¾Í½ü·ÖÅäºÍÂÖѯ·ÖÅä¡£Áé»îÐÔûÓÐHTTPÖØ¶¨Ïò¸ºÔؾùºâ¸ß¡£

l ·´Ïò´úÀí¸ºÔØ¾ùºâ£¬ÊÇͨ¹ýÒ»×é»ùÓÚWeb·þÎñÆ÷ÓëÓû§Ö®¼äµÄ·þÎñÆ÷À´½øÐеÄ£¬¿ÉÒÔÅäÖþ²Ì¬ºÍ¶¯Ì¬Á½ÖÖ²ßÂÔ·½Ê½À´ÊµÏÖ¸ºÔؾùºâ¡£Ò»°ã»áÓöµ½ð¤ÖͻỰµÄÎÊÌ⣬ÐèÒª¿¼ÂÇÊÇ·ñͨ¹ýʵÏÖð¤ÖͻỰÀ´Ç¨¾ÍϵͳµÄÌØÊâÐèÇ󣬿ÉÒÔ¿¼ÂÇʹÓÃcookie¡¢·Ö²¼Ê½session¡¢·Ö²¼Ê½»º´æµÄ¼¼ÊõÊֶΣ¬Èúó¶Ë·þÎñÆ÷µÄÓ¦Óþ¡Á¿Óë±¾µØÎ޹ء£

l IP¸ºÔؾùºâ(DNAT¶Ë¿ÚÓ³Éä)£¬Í¨¹ýÐÞ¸ÄÊý¾Ý°üÇëÇóת·¢µÄIPµØÖ·£¬±ÜÃâÍøÂçÊý¾Ý°ü½øÈëÓû§½ø³Ì£¬Ö±½ÓÔÚLinuxÄں˽׶ξÍת·¢µ½Êµ¼Ê·þÎñÆ÷ÉÏ¡£ÊÕµ½Ê±ºò·þÎñµÄ·´À¡Ö®ºó£¬ÔÙÐ޸ķµ»ØÊý¾Ý°üµÄµÄIPµØÖ·½«·µ»ØÊý¾Ý°üÖ´ÐÐÓû§µÄÕæÕýÇëÇó¡£³£¼ûµÄ¼¼ÊõÊÖ¶ÎÊÇLinuxÄÚºËÄ£¿éNetFilter¡£³£ÓõĿò¼Ü¾ÍÊÇLVS£¬LVS²»½ö¿ÉÒÔÓÃÀ´×öIP¸ºÔؾùºâ£¬»¹¿ÉÒÔʹÓÃÓÃÀ´×öÖ±½Ó·ÓɺÍIPËíµÀ¡£

l Ö±½Ó·ÓÉ£¬Í¨¹ýÐÞ¸ÄÊý¾Ý°üµÄÄ¿±êMACµØÖ·£¬½«Êµ¼Ê·þÎñÆ÷µÄÏìÓ¦Êý¾Ý°ü½«Ö±½Ó·¢Ë͸øÓû§¶Ë£¬¶ø²»¾­¹ýµ÷¶ÈÆ÷¡£ÔÚLVS¿ò¼ÜÖнÐ×öLVS-DR¡£Ö±½Ó·ÓÉÊÇ»ùÓÚIP±ðÃûµÄʵÏÖ¡£

l IPËíµÀ(IP Tunneling),¼òµ¥µÄ˵£¬Ëü¼Û¸ñµ÷¶ÈÆ÷ÊÕµ½µÄIPÊý¾Ý°ü·â×°ÔÚÒ»¸öеÄIPÊý¾Ý°üÖУ¬×ª½»¸øÊµ¼Ê·þÎñÆ÷£¬È»ºóʵ¼Ê·þÎñÆ÷µÄÏìÓ¦Êý¾Ý°ü¿ÉÒÔÖ±½Óµ½´ï¿Í»§¶Ë¡£

2.1.8¡¢¸ºÔؾùºâ²ßÂÔ×ܽá

1¡¢ÂÖÑ­¾ùºâ(Round Robin)£ºÃ¿Ò»´ÎÀ´×ÔÍøÂçµÄÇëÇóÂÖÁ÷·ÖÅ䏸ÄÚ²¿ÖеķþÎñÆ÷£¬´Ó1ÖÁNÈ»ºóÖØÐ¿ªÊ¼¡£´ËÖÖ¾ùºâËã·¨ÊʺÏÓÚ·þÎñÆ÷×éÖеÄËùÓзþÎñÆ÷¶¼ÓÐÏàͬµÄÈíÓ²¼þÅäÖò¢ÇÒÆ½¾ù·þÎñÇëÇóÏà¶Ô¾ùºâµÄÇé¿ö¡£

2¡¢È¨ÖØÂÖÑ­¾ùºâ(Weighted Round Robin)£º¸ù¾Ý·þÎñÆ÷µÄ²»Í¬´¦ÀíÄÜÁ¦£¬¸øÃ¿¸ö·þÎñÆ÷·ÖÅ䲻ͬµÄȨֵ£¬Ê¹ÆäÄܹ»½ÓÊÜÏàӦȨֵÊýµÄ·þÎñÇëÇó¡£ÀýÈ磺·þÎñÆ÷AµÄȨֵ±»Éè¼Æ³É1£¬BµÄȨֵÊÇ3£¬CµÄȨֵÊÇ6£¬Ôò·þÎñÆ÷A¡¢B¡¢C½«·Ö±ð½ÓÊܵ½10%¡¢30%¡¢60%µÄ·þÎñÇëÇó¡£´ËÖÖ¾ùºâËã·¨ÄÜÈ·±£¸ßÐÔÄܵķþÎñÆ÷µÃµ½¸ü¶àµÄʹÓÃÂÊ£¬±ÜÃâµÍÐÔÄܵķþÎñÆ÷¸ºÔعýÖØ¡£

3¡¢Ëæ»ú¾ùºâ(Random)£º°ÑÀ´×ÔÍøÂçµÄÇëÇóËæ»ú·ÖÅ䏸ÄÚ²¿ÖеĶà¸ö·þÎñÆ÷¡£

4¡¢È¨ÖØËæ»ú¾ùºâ(Weighted Random)£º´ËÖÖ¾ùºâËã·¨ÀàËÆÓÚÈ¨ÖØÂÖÑ­Ëã·¨£¬²»¹ýÔÚ´¦ÀíÇëÇó·Öµ£Ê±ÊǸöËæ»úÑ¡ÔñµÄ¹ý³Ì¡£

5¡¢ÏìÓ¦ËٶȾùºâ(Response Time)£º¸ºÔؾùºâÉ豸¶ÔÄÚ²¿¸÷·þÎñÆ÷·¢³öÒ»¸ö̽²âÇëÇó(ÀýÈçPing)£¬È»ºó¸ù¾ÝÄÚ²¿Öи÷·þÎñÆ÷¶Ô̽²âÇëÇóµÄ×î¿ìÏìӦʱ¼äÀ´¾ö¶¨ÄÄһ̨·þÎñÆ÷À´ÏìÓ¦¿Í»§¶ËµÄ·þÎñÇëÇó¡£´ËÖÖ¾ùºâËã·¨ÄܽϺõķ´Ó³·þÎñÆ÷µÄµ±Ç°ÔËÐÐ״̬£¬µ«Õâ×î¿ìÏìӦʱ¼ä½ö½öÖ¸µÄÊǸºÔؾùºâÉ豸Óë·þÎñÆ÷¼äµÄ×î¿ìÏìӦʱ¼ä£¬¶ø²»Êǿͻ§¶ËÓë·þÎñÆ÷¼äµÄ×î¿ìÏìӦʱ¼ä¡£

6¡¢×îÉÙÁ¬½ÓÊý¾ùºâ(Least Connection)£º¿Í»§¶ËµÄÿһ´ÎÇëÇó·þÎñÔÚ·þÎñÆ÷Í£ÁôµÄʱ¼ä¿ÉÄÜ»áÓнϴóµÄ²îÒì£¬Ëæ×ʤ×÷ʱ¼ä¼Ó³¤£¬Èç¹û²ÉÓüòµ¥µÄÂÖÑ­»òËæ»ú¾ùºâËã·¨£¬Ã¿Ò»Ì¨·þÎñÆ÷ÉϵÄÁ¬½Ó½ø³Ì¿ÉÄÜ»á²úÉú¼«´óµÄ²»Í¬£¬²¢Ã»ÓÐ´ïµ½ÕæÕýµÄ¸ºÔؾùºâ¡£×îÉÙÁ¬½ÓÊý¾ùºâËã·¨¶ÔÄÚ²¿ÖÐÐè¸ºÔØµÄÿһ̨·þÎñÆ÷¶¼ÓÐÒ»¸öÊý¾Ý¼Ç¼£¬¼Ç¼µ±Ç°¸Ã·þÎñÆ÷ÕýÔÚ´¦ÀíµÄÁ¬½ÓÊýÁ¿£¬µ±ÓÐеķþÎñÁ¬½ÓÇëÇóʱ£¬½«°Ñµ±Ç°ÇëÇó·ÖÅ䏸Á¬½ÓÊý×îÉٵķþÎñÆ÷£¬Ê¹¾ùºâ¸ü¼Ó·ûºÏʵ¼ÊÇé¿ö£¬¸ºÔظü¼Ó¾ùºâ¡£´ËÖÖ¾ùºâËã·¨Êʺϳ¤Ê±´¦ÀíµÄÇëÇó·þÎñ£¬ÈçFTP¡£

7¡¢´¦ÀíÄÜÁ¦¾ùºâ£º´ËÖÖ¾ùºâËã·¨½«°Ñ·þÎñÇëÇó·ÖÅ䏸ÄÚ²¿Öд¦Àí¸ººÉ(¸ù¾Ý·þÎñÆ÷CPUÐͺÅ¡¢CPUÊýÁ¿¡¢ÄÚ´æ´óС¼°µ±Ç°Á¬½ÓÊýµÈ»»Ëã¶ø³É)×îÇáµÄ·þÎñÆ÷£¬ÓÉÓÚ¿¼Âǵ½ÁËÄÚ²¿·þÎñÆ÷µÄ´¦ÀíÄÜÁ¦¼°µ±Ç°ÍøÂçÔËÐÐ×´¿ö£¬ËùÒÔ´ËÖÖ¾ùºâËã·¨Ïà¶ÔÀ´Ëµ¸ü¼Ó¾«È·£¬ÓÈÆäÊʺÏÔËÓõ½µÚÆß²ã(Ó¦Óòã)¸ºÔؾùºâµÄÇé¿öÏ¡£

8¡¢DNSÏìÓ¦¾ùºâ(Flash DNS)£ºÔÚInternetÉÏ£¬ÎÞÂÛÊÇHTTP¡¢FTP»òÊÇÆäËüµÄ·þÎñÇëÇ󣬿ͻ§¶ËÒ»°ã¶¼ÊÇͨ¹ýÓòÃû½âÎöÀ´ÕÒµ½·þÎñÆ÷È·ÇеÄIPµØÖ·µÄ¡£Ôڴ˾ùºâË㷨ϣ¬·Ö´¦ÔÚ²»Í¬µØÀíλÖõĸºÔؾùºâÉ豸ÊÕµ½Í¬Ò»¸ö¿Í»§¶ËµÄÓòÃû½âÎöÇëÇ󣬲¢ÔÚͬһʱ¼äÄÚ°Ñ´ËÓòÃû½âÎö³É¸÷×ÔÏà¶ÔÓ¦·þÎñÆ÷µÄIPµØÖ·(¼´Óë´Ë¸ºÔؾùºâÉ豸ÔÚͬһλµØÀíλÖõķþÎñÆ÷µÄIPµØÖ·)²¢·µ»Ø¸ø¿Í»§¶Ë£¬Ôò¿Í»§¶Ë½«ÒÔ×îÏÈÊÕµ½µÄÓòÃû½âÎöIPµØÖ·À´¼ÌÐøÇëÇó·þÎñ£¬¶øºöÂÔÆäËüµÄIPµØÖ·ÏìÓ¦¡£ÔÚÖÖ¾ùºâ²ßÂÔÊʺÏÓ¦ÓÃÔÚÈ«¾Ö¸ºÔؾùºâµÄÇé¿öÏ£¬¶Ô±¾µØ¸ºÔؾùºâÊÇûÓÐÒâÒåµÄ¡£

·þÎñ¹ÊÕϵļì²â·½Ê½ºÍÄÜÁ¦£º

1¡¢PingÕì²â£ºÍ¨¹ýpingµÄ·½Ê½¼ì²â·þÎñÆ÷¼°ÍøÂçϵͳ״¿ö£¬´ËÖÖ·½Ê½¼òµ¥¿ìËÙ£¬µ«Ö»ÄÜ´óÖ¼ì²â³öÍøÂç¼°·þÎñÆ÷ÉϵIJÙ×÷ϵͳÊÇ·ñÕý³££¬¶Ô·þÎñÆ÷ÉϵÄÓ¦Ó÷þÎñ¼ì²â¾ÍÎÞÄÜΪÁ¦ÁË¡£

2¡¢TCP OpenÕì²â£ºÃ¿¸ö·þÎñ¶¼»á¿ª·Åij¸öͨ¹ýTCPÁ¬½Ó£¬¼ì²â·þÎñÆ÷ÉÏij¸öTCP¶Ë¿Ú(ÈçTelnetµÄ23¿Ú£¬HTTPµÄ80¿ÚµÈ)ÊÇ·ñ¿ª·ÅÀ´ÅжϷþÎñÊÇ·ñÕý³£¡£

3¡¢HTT PURLÕì²â£º±ÈÈçÏòHTTP·þÎñÆ÷·¢³öÒ»¸ö¶Ômain.htmlÎļþµÄ·ÃÎÊÇëÇó£¬Èç¹ûÊÕµ½´íÎóÐÅÏ¢£¬ÔòÈÏΪ·þÎñÆ÷³öÏÖ¹ÊÕÏ¡£

2.2¡¢LVS¸ºÔؾùºâ

2.2.1¡¢LVSÊÇʲô

1¡¢LVSµÄÓ¢ÎÄÈ«³ÆÊÇLinux Virtual Server£¬¼´LinuxÐéÄâ·þÎñÆ÷¡£

2¡¢ËüÊÇÎÒÃǹú¼ÒµÄÕÂÎÄáÔ²©Ê¿µÄÒ»¸ö¿ªÔ´ÏîÄ¿¡£

2.2.2¡¢LVSÄܸÉʲô

1¡¢ LVSÖ÷ÒªÓÃÓÚ¶à·þÎñÆ÷µÄ¸ºÔؾùºâ¡£

2¡¢ Ëü¹¤×÷ÔÚÍøÂç²ã£¬¿ÉÒÔʵÏÖ¸ßÐÔÄÜ£¬¸ß¿ÉÓõķþÎñÆ÷¼¯Èº¼¼Êõ¡£

3¡¢ Ëü¿É°ÑÐí¶àµÍÐÔÄܵķþÎñÆ÷×éºÏÔÚÒ»ÆðÐγÉÒ»¸ö³¬¼¶·þÎñÆ÷¡£

4¡¢ ËüÅäÖ÷dz£¼òµ¥£¬ÇÒÓжàÖÖ¸ºÔؾùºâµÄ·½·¨¡£

5¡¢ ËüÎȶ¨¿É¿¿£¬¼´Ê¹ÔÚ¼¯ÈºµÄ·þÎñÆ÷ÖÐij̨·þÎñÆ÷ÎÞ·¨Õý³£¹¤×÷£¬Ò²²»Ó°ÏìÕûÌåЧ¹û¡£

6¡¢ ¿ÉÀ©Õ¹ÐÔÒ²·Ç³£ºÃ¡£

2.2.3¡¢NginxºÍlvs×÷¶Ô±ÈµÄ½á¹û

1¡¢nginx¹¤×÷ÔÚÍøÂçµÄÓ¦Óò㣬Ö÷Òª×ö·´Ïò´úÀí;lvs¹¤×÷ÔÚÍøÂç²ã£¬Ö÷Òª×ö¸ºÔؾùºâ¡£NginxҲͬÑùÄܳÐÊܸܺ߸ºÔØÇÒÎȶ¨£¬µ«¸ºÔضȺÍÎȶ¨¶È²»¼°lvs¡£

2¡¢nginx¶ÔÍøÂçµÄÒÀÀµ½ÏС£¬lvs¾Í±È½ÏÒÀÀµÓÚÍøÂç»·¾³¡£

3¡¢ÔÚʹÓÃÉÏ£¬Ò»°ã×îǰ¶ËËù²ÉÈ¡µÄ²ßÂÔÓ¦ÊÇlvs¡£ nginx¿É×÷Ϊlvs½Úµã»úÆ÷ʹÓá£

2.2.4¡¢¸ºÔؾùºâ»úÖÆ

Ç°ÃæÎÒÃÇ˵ÁËLVSÊǹ¤×÷ÔÚÍøÂç²ã¡£Ïà¶ÔÓÚÆäËü¸ºÔؾùºâµÄ½â¾ö°ì·¨£¬ËüµÄЧÂÊÊǷdz£¸ßµÄ¡£LVSµÄͨ¹ý¿ØÖÆIPÀ´ÊµÏÖ¸ºÔؾùºâ¡£IPVSÊÇÆä¾ßÌåµÄʵÏÖÄ£¿é¡£IPVSµÄÖ÷Òª×÷Ó㺰²×°ÔÚDirector ServerÉÏÃæ£¬ÔÚDirector ServerÐéÄâÒ»¸ö¶ÔÍâ·ÃÎʵÄIP(VIP)¡£Óû§·ÃÎÊVIP£¬µ½´ïDirector Server£¬Director Server¸ù¾ÝÒ»¶¨µÄ¹æÔòÑ¡ÔñÒ»¸öReal Server£¬´¦ÀíÍê³ÉºóÈ»ºó·µ»Ø¸ø¿Í»§¶ËÊý¾Ý¡£ÕâЩ²½Öè²úÉúÁËһЩ¾ßÌåµÄÎÊÌ⣬±ÈÈçÈçºÎÑ¡Ôñ¾ßÌåµÄReal Server£¬Real ServerÈç¹û·µ»Ø¸ø¿Í»§¶ËÊý¾ÝµÈµÈ¡£IPVSΪ´ËÓÐÈýÖÖ»úÖÆ£º

1. VS/NAT(Virtual Server via Network Address Translation)£¬¼´ÍøÂçµØÖ··­×ª¼¼ÊõʵÏÖÐéÄâ·þÎñÆ÷¡£

µ±ÇëÇóÀ´µ½Ê±£¬Diretor serverÉÏ´¦ÀíµÄ³ÌÐò½«Êý¾Ý±¨ÎÄÖеÄÄ¿±êµØÖ·(¼´ÐéÄâIPµØÖ·)¸Ä³É¾ßÌåµÄij̨Real Server,¶Ë¿ÚÒ²¸Ä³ÉReal ServerµÄ¶Ë¿Ú£¬È»ºó°Ñ±¨ÎÄ·¢¸øReal Server¡£Real Server´¦ÀíÍêÊý¾Ýºó£¬ÐèÒª·µ»Ø¸øDiretor Server£¬È»ºóDiretor server½«Êý¾Ý°üÖеÄÔ´µØÖ·ºÍÔ´¶Ë¿Ú¸Ä³ÉVIPµÄµØÖ·ºÍ¶Ë¿Ú£¬×îºó°ÑÊý¾Ý·¢ËͳöÈ¥¡£ÓÉ´Ë¿ÉÒÔ¿´³ö£¬Óû§µÄÇëÇóºÍ·µ»Ø¶¼Òª¾­¹ýDiretor Server£¬Èç¹ûÊý¾Ý¹ý¶à£¬Diretor Server¿Ï¶¨»á²»¿°Öظº¡£

2. VS/TUN(Virtual Server via IP Tunneling),¼´IPËíµÀ¼¼ÊõʵÏÖÐéÄâ·þÎñÆ÷¡£

IPËíµÀ(IP tunneling)Êǽ«Ò»¸öIP±¨ÎÄ·â×°ÔÚÁíÒ»¸öIP±¨Îĵļ¼Êõ£¬Õâ¿ÉÒÔʹµÃÄ¿±êΪһ¸öIPµØÖ·µÄÊý¾Ý±¨ÎÄÄܱ»·â×°ºÍת·¢µ½ÁíÒ»¸öIPµØÖ·¡£IPËíµÀ¼¼ÊõÒà³ÆÎªIP·â×°¼¼Êõ(IP encapsulation)¡£Ëü¸úVS/NAT»ù±¾Ò»Ñù£¬µ«ÊÇReal serverÊÇÖ±½Ó·µ»ØÊý¾Ý¸ø¿Í»§¶Ë£¬²»ÐèÒª¾­¹ýDiretor server,Õâ´ó´ó½µµÍÁËDiretor serverµÄѹÁ¦¡£

3. VS/DR(Virtual Server via Direct Routing)£¬¼´ÓÃÖ±½Ó·Óɼ¼ÊõʵÏÖÐéÄâ·þÎñÆ÷¡£

¸úÇ°ÃæÁ½ÖÖ·½Ê½£¬ËüµÄ±¨ÎÄת·¢·½·¨ÓÐËù²»Í¬£¬VS/DRͨ¹ý¸ÄдÇëÇó±¨ÎĵÄMACµØÖ·£¬½«ÇëÇó·¢Ë͵½Real Server£¬¶øReal Server½«ÏìÓ¦Ö±½Ó·µ»Ø¸ø¿Í»§£¬ÃâÈ¥ÁËVS/TUNÖеÄIPËíµÀ¿ªÏú¡£ÕâÖÖ·½Ê½ÊÇÈýÖÖ¸ºÔص÷¶È»úÖÆÖÐÐÔÄÜ×î¸ß×îºÃµÄ£¬µ«ÊDZØÐëÒªÇóDirector ServerÓëReal Server¶¼ÓÐÒ»¿éÍø¿¨Á¬ÔÚͬһÎïÀíÍø¶ÎÉÏ¡£

2.2.5¡¢LVSÅäÖÃ

CentOS 6.3ϲ¿ÊðLVS(NAT)+keepalivedʵÏÖ¸ßÐÔÄܸ߿ÉÓøºÔؾùºâ

http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html

2.3¡¢Nginx·´Ïò´úÀí

2.3.1¡¢Nginx¼ò½é

NginxÊÇÒ»¸ö×ÔÓÉ¡¢¿ªÔ´¡¢¸ßÐÔÄܼ°ÇáÁ¿¼¶µÄHTTP·þÎñÆ÷¼°·´×ª´úÀí·þÎñÆ÷¡£NginxÒÔÆä¸ßÐÔÄÜ¡¢Îȶ¨¡¢¹¦Äܷḻ¡¢ÅäÖüòµ¥¼°Õ¼ÓÃϵͳ×ÊÔ´ÉÙ¶øÖø³Æ¡£

Nginx ³¬Ô½ Apache µÄ¸ßÐÔÄܺÍÎȶ¨ÐÔ£¬Ê¹µÃ¹úÄÚʹÓà Nginx ×÷Ϊ Web ·þÎñÆ÷µÄÍøÕ¾Ò²Ô½À´Ô½¶à.

2.3.2¡¢»ù´¡¹¦ÄÜ

·´Ïò´úÀí¼ÓËÙ£¬¼òµ¥µÄ¸ºÔؾùºâºÍÈÝ´í;

2.3.3¡¢ÓÅÊÆ

1¡¢NginxרΪÐÔÄÜÓÅ»¯¶ø¿ª·¢£¬ÐÔÄÜÊÇÆä×îÖØÒªµÄ¿¼Á¿, ʵÏÖÉϷdz£×¢ÖØÐ§ÂÊ ¡£Óб¨¸æ±íÃ÷ÄÜÖ§³Ö¸ß´ï 50,000 ¸ö²¢·¢Á¬½ÓÊý¡£

2¡¢Nginx¾ßÓкܸߵÄÎȶ¨ÐÔ¡£ÆäËüHTTP·þÎñÆ÷£¬µ±Óöµ½·ÃÎʵķåÖµ£¬»òÕßÓÐÈ˶ñÒâ·¢ÆðÂýËÙÁ¬½Óʱ£¬Ò²ºÜ¿ÉÄܻᵼÖ·þÎñÆ÷ÎïÀíÄÚ´æºÄ¾¡Æµ·±½»»»£¬Ê§È¥ÏìÓ¦£¬Ö»ÄÜÖØÆô·þÎñÆ÷¡£

ÀýÈ統ǰapacheÒ»µ©Éϵ½200¸öÒÔÉϽø³Ì£¬webÏìÓ¦ËٶȾÍÃ÷ÏԷdz£»ºÂýÁË¡£¶øNginx²ÉÈ¡ÁË·Ö½×¶Î×ÊÔ´·ÖÅä¼¼Êõ£¬Ê¹µÃËüµÄCPUÓëÄÚ´æÕ¼ÓÃÂʷdz£µÍ¡£

3¡¢nginx¹Ù·½±íʾ±£³Ö10,000¸öûÓлµÄÁ¬½Ó£¬ËüÖ»Õ¼2.5MÄڴ棬¾ÍÎȶ¨ÐÔ¶øÑÔ, nginx±ÈÆäËû´úÀí·þÎñÆ÷¸üʤһ³ï¡£

4¡¢NginxÖ§³ÖÈȲ¿Êð¡£ËüµÄÆô¶¯ÌرðÈÝÒ×, ²¢ÇÒ¼¸ºõ¿ÉÒÔ×öµ½7*24²»¼ä¶ÏÔËÐУ¬¼´Ê¹ÔËÐÐÊý¸öÔÂÒ²²»ÐèÒªÖØÐÂÆô¶¯¡£Ä㻹Äܹ»ÔÚ²»¼ä¶Ï·þÎñµÄÇé¿öÏ£¬¶ÔÈí¼þ°æ±¾½øÐнøÐÐÉý¼¶¡£

5¡¢Nginx²ÉÓÃC½øÐбàд, ²»ÂÛÊÇϵͳ×ÊÔ´¿ªÏú»¹ÊÇCPUʹÓÃЧÂʶ¼¸ßºÜ¶à¡£

2.3.4¡¢ÅäÖÃ

Nginx°²×°ÓëʹÓÃ

http://www.cnblogs.com/skynet/p/4146083.html

NginxÅäÖÃÎļþÏêϸ˵Ã÷

http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html

±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍÔÆ¼ÆËã´óÊý¾ÝѧԺËùÓУ¬»¶Ó­×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡
×÷ÕߣºÀÖÓã²¥¿ÍÔÆ¼ÆËã´óÊý¾ÝѧԺ
Ê×·¢£ºhttp://www.itcast.cn/javayun
0 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿