Ö±²¥Æ½Ì¨
ijֱ²¥Æ½Ì¨Í¨¹ýNginxÊÓÆµÓÅ»¯¼¼Êõ£¬½â¾öÁ˹ŰåÖ±²¥Æ½Ì¨³£¼ûµÄ¿¨¶ÙºÍÑÓ³ÙÎÊÌâ¡£¹ÛÖÚµÄԢĿÌåÑé´ó´óÌáÉý£¬Æ½Ì¨µÄÓû§Õ³ÐԺͻîÔ¾¶ÈÒ²ÏÔÖøÌá¸ß¡£
Ëæ×Å»¥ÁªÍøµÄ¿ìËÙÉú³¤£¬ÊÓÆµÄÚÈÝÒѾ³ÉΪÈËÃÇÈÕ³£Éú»îºÍÉÌÒµÔ˶¯Öв»¿É»òȱµÄÒ»²¿·Ö¡£¸ß??Ëæ×Å»¥ÁªÍøµÄ¿ìËÙÉú³¤£¬ÊÓÆµÄÚÈÝÒѾ³ÉΪÈËÃÇÈÕ³£Éú»îºÍÉÌÒµÔ˶¯Öв»¿É»òȱµÄÒ»²¿·Ö¡£ÎªÁËÂú×ãÓû§¶Ô¸ßÖÊÁ¿¡¢Á÷³©ÊÓÆµÌåÑéµÄÈÕÒæÔö³¤µÄÐèÇó£¬Nginx100%ÊÓÆµÓÅ»¯¼¼ÊõÌṩÁËÒ»¸öÇ¿´ó¶øÈ«ÃæµÄ½â¾ö¼Æ»®¡£
ÎÒÃǽ«ÉîÈë̽ÌÖNginxÊÓÆµÓÅ»¯¼¼ÊõµÄÆäËûÖØÒª·½Ã棬ÒÔ¼°ÈçºÎͨ¹ýÕâЩ¼¼ÊõÊÖ¶ÎʵÏÖÊÓÆµÁ÷´«µÄ¼«Ö¡£
ÄÚÈÝ·Ö·¢»ººÍ´æÕ½ÂÔ
ΪÁ˽øÒ»²½ÓÅ»¯ÊÓÆµÄÚÈݵÄ?´«Ê䣬Nginx»¹ÌṩÁ˶àÖÖÄÚÈÝ·Ö·¢»ººÍ´æÕ½ÂÔ¡£ÀýÈ磬ʹÓÃproxy_cacheºÍproxy_cache_validÑ¡Ï¿ÉÒÔÔÚЧÀÍÆ÷ÉÏ»º´æÊÓÆµÄÚÈÝ£¬¼õÉÙÖØ¸´µÄÊý¾Ý´«Ê䣬Ìá¸ßÏìÓ¦ËÙ¶È¡£
http{proxy_cache_path/data/nginx/cachelevels=1:2keys=100max_size=10ginactive=60muse_temp_path=off;proxy_cache_valid20030210m;proxy_cache_valid4041m;server{...location/video{proxy_passhttp://backend;proxy_cachemy_cache;proxy_cache_bypass$http_cache_control;add_headerX-Cache-Status$upstream_cache_status;}}}
×ܽá
Nginx100%ÊÓÆµÓÅ»¯µÄÃØÃÜÔÚÓÚÆä¸ßЧµÄI/O´¦ÀíÄÜÁ¦¡¢Áé»îµÄÅäÖÃÑ¡ÏîÒÔ¼°¶àÑù»¯µÄ´«ÊäÐÒéÖ§³Ö¡£Í¨¹ýºÏÀíµÄÅäÖúÍÓÅ»¯Õ½ÂÔ£¬NginxÄܹ»ÏÔÖøÌáÉýÊÓÆµÄÚÈݵĴ«ÊäЧÂʺÍÖÊÁ¿£¬ÎªÓû§ÌṩÁ÷³©¡¢¸ßÖÊÁ¿µÄԢĿÌåÑé¡£ÎÞÂÛÊÇÖ±²¥¡¢µã²¥Õվɻº´æ´«Ê䣬Nginx¶¼Äܹ»³ÉΪÄú¿É¿¿µÄÊÓÆµÓÅ»¯ºÍÁ÷ýÌå´«Ê乤¾ß¡£
ͨ¹ý²»¾øÓÅ»¯ºÍµ÷½âNginxµÄÅäÖã¬Äú½«Äܹ»ÊÍ·ÅÊÓÆµ´«ÊäµÄÈ«²¿Ç±Á¦£¬´ø?À´Ç°ËùδÓеÄÁ÷³©ÌåÑé¡£
ÊÓÆµÄÚÈݵķֶδ«Êä
ΪÁËÌá¸ßÊÓÆµ¼ÓÔØËٶȺͲ¥·ÅÎȶ¨ÐÔ£¬NginxÖ§³ÖÊÓÆµµÄ·Ö¶Î´«Êä¼¼Êõ¡£Í¨¹ý½«ÊÓÆµÄÚÈÝÖ§½â³É¶à¸öС¶Î½øÐд«Ê䣬¿ÉÒÔÔÚÓû§»á¼ûʱ¿ìËÙ¼ÓÔØÊÓÆµµÄǰ¼¸¶Î£¬²¢ÔÚ²¥·ÅÀú³ÌÖÐÆ¾¾ÝÓû§µÄԢĿ½ø¶È¼ÌÐø¼ÓÔØºóÐø¶Î¡£ÕâÖֶַδ«Êä¼¼Êõ£¬¿ÉÒÔÓÐЧ¼õÉÙÊÓÆµ»º³åʱ¼ä£¬Ìá¸ßÊÓÆµ²¥·ÅµÄÁ÷³©¶È¡£
¸ßЧµÄ¸ºÔؾùºâ
Ôڸ߲¢·¢»á¼ûÏ£¬Ð§ÀÍÆ÷µÄ¸ºÔؾùºâÖÁ¹ØÖØÒª¡£Nginxͨ¹ýupstreamÄ£¿é£¬¿ÉÒÔÅäÖöà¸öºó¶ËЧÀÍÆ÷£¬²¢Æ¾¾Ý¸ºÔØÇé¿ö¶¯Ì¬µ÷½âÁ÷Á¿·ÖÅÉ¡£Í¨¹ýleast_time_connect¡¢least_time_responseµÈÖ¸Á¿ÉÒÔʵÏÖÔ½·¢ÖÇÄܵĸºÔؾùºâÕ½ÂÔ¡£
http{upstreambackend{serverbackend1.example.com;serverbackend2.example.com;serverbackend3.example.com;}server{listen80;location/{proxy_passhttp://backend;proxy_http_version1.1;proxy_set_headerConnection"";proxy_bufferingon;proxy_cache_bypass1;proxy_cache_valid20010m;proxy_cache_use_staleerrortimeoutupdating;}}}
NginxÔÚÊÓÆµÓÅ»¯·½ÃæµÄ׿ԽÌåÏÖ£¬Ê¹Æä³ÉÎªÍøÕ¾ÌáÉýÊÓÆµÁ÷³©¶ÈµÄ¶¥¼¶Ñ¡Ôñ¡£Í¨¹ý¸ßЧµÄÁ÷ýÌå½â¾ö¼Æ»®¡¢±ßÑØÅÌËãºÍCDNÕûºÏ¡¢¶¯Ì¬ÄÚÈÝ»º´æ¡¢¶àÏ̴߳¦ÀíµÈ½¹µã¼¼Êõ£¬NginxÄܹ»Ôڸ߲¢·¢¡¢¸ßÁ÷Á¿Çé¿öÏ£¬°ü¹ÜÊÓÆµÄÚÈݵĿìËÙ´«ÊäºÍÁ÷³©²¥·Å¡£ÎÞÂÛÊÇÖ±²¥Æ½Ì¨¡¢ÊÓÆµ·ÖÏíÆ½Ì¨£¬ÕվɽÌÓýºÍÅàѵƽ̨£¬Nginx¶¼ÄÜΪÆäÌṩǿÓÐÁ¦µÄ?¼¼ÊõÖ§³Ö?£¬ÌáÉýÓû§ÌåÑ飬Ôö¼ÓÓû§Õ³ÐÔ¡£
ÔÚδÀ´£¬Ëæ×ÅÊÓÆµÄÚÈݵĽøÒ»²½ÆÕ¼°ºÍÉú³¤£¬NginxµÄÊÓÆµÓÅ»¯¼¼Êõ±Ø½«¼ÌÐø·¢»ÓÖØÒª×÷Óã¬ÎªÖÖÖÖÍøÕ¾Ìṩ¸ßЧ¡¢¿É¿¿µÄ?ÊÓÆµÐ§Àͽâ¾ö¼Æ»®¡£
ÊÓÆµÓÅ»¯µÄ»ù´¡
ÔÚ̽ÌÖNginx100%ÊÓÆµÓÅ»¯µÄÃØÃÜ֮ǰ£¬ÎÒÃÇÊ×ÏÈÐèÒªÁ˽âNginxµÄ»ù±¾¹¦Ð§ºÍÌØµã¡£NginxÒòÆä¸ßЧµÄI/O´¦ÀíÄÜÁ¦ºÍÇáÁ¿¼¶µÄ¼Ü¹¹¶ø±¸ÊÜÍÆ³ç¡£ËüÄܹ»ÒÔµÍÄÚ´æÏûºÄºÍ¸ß²¢·¢´¦ÀíÄÜÁ¦ÔÚЧÀÍÆ÷Çé¿öÖÐÌåÏÖ¾«²Ê£¬ÌرðÊÊÓÃÓÚÊÓÆµÁ÷ýÌåµÄ´«ÊäºÍЧÀÍ¡£
NginxµÄ·´ÏòÊðÀí¹¦Ð§Ê¹ÆäÔÚÊÓÆµÁ÷ýÌåЧÀÍÖеÄÓ¦ÓÃÔ½·¢¹ã·º¡£Í¨¹ýÅäÖÃNginx£¬Äú¿ÉÒÔ½«ÇëÇó·Ö·¢µ½¶à¸öºó¶ËЧÀÍÆ÷£¬´Ó?¶øÊµÏÖ¸ºÔؾùºâ£¬Ìá¸ßϵͳµÄ?¿É¿¿ÐԺͿÉÀ©Õ¹ÐÔ¡£NginxÖ§³Ö¶àÖÖÐÒ飬°üÀ¨HTTP¡¢HTTPS¡¢WebSocket¡¢FastCGIµÈ£¬ÎªÊÓÆµÄÚÈݵĴ«ÊäÌṩÁ˶àÑù»¯µÄÑ¡Ôñ¡£
µÄ?ÅäÖü¼ÇÉ
ÔÚNginxµÄÅäÖÃÎļþÖУ¬Óм¸¸öÒªº¦µÄ²ÎÊýºÍÄ£¿é¿ÉÒÔ×ÊÖúʵÏÖÊÓÆµÄÚÈݵÄÓÅ»¯¡£Ê×ÏÈÊÇhttpÄ£¿éϵÄgzipѹËõÑ¡Ïͨ¹ýÆôÓÃGzipѹËõ£¬¿ÉÒÔÏÔÖø¼õÉÙÊÓÆµÎļþµÄ´«Êä¾Þϸ£¬Ìá¸ß´«ÊäËÙ¶È£¬´Ó¶ø¸ÄÉÆÓû§µÄԢĿÌåÑé¡£
http{gzipon;gzip_varyon;gzip_min_length10240;gzip_comp_level6;gzip_typesapplication/x-javascriptapplication/jsonapplication/xmltext/javascripttext/csstext/plain;}
Æä´ÎÊÇhttpÄ£¿éϵÄtcp_nopushºÍtcp_nodelayÑ¡Ïî¡£ÕâÁ½¸öÑ¡Ïî¿ÉÒÔÓÅ»¯TCP´«ÊäµÄЧÂÊ£¬Ê¹Êý¾ÝÒÔ×îСµÄÑÓ³Ù·¢ËÍ£¬ÌáÉýÊÓÆµÁ÷µÄʵʱÐÔ¡£
У¶Ô£ºËÎÏþ¾ü(p6mu9CWFoIx7YFddy4eQTuEboRc9VR7b9b)


