»Æ½ð³ÇÍøÕ¾

Nginx100%ÊÓÆµÓÅ»¯
ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷ÕߣºÍõ¿ËÇÚ2026-03-08 12:16:53
wwwzqhsauikdwjbfkjabfwqr

СÐò£ºµ±Á÷ͨ³ÉΪÍõµÀ  £¬NginxÔõÑùÁ¶³ÉÊÓÆµÓÅ»¯ÀûÆ÷ £¿

ÔÚÏÖÔÚÕâ¸öÄÚÈÝΪÍõµÄʱ´ú  £¬ÊÓÆµÒÑÈ»³ÉΪÐÅÏ¢Èö²¥¡¢ÓéÀÖÏûDzºÍÉÌÒµÓªÏúµÄ½¹µãÔØÌå¡£´ÓÔÚÏ߿γ̵½¸ßÇåÓ°Ï·  £¬´ÓÖ±²¥»¥¶¯µ½¶ÌÊÓÆµ·çÐÐ  £¬Óû§¹ØÓÚÊÓÆµ²¥?·ÅµÄ?Á÷ͨ¶ÈºÍÏìÓ¦ËÙÂÊÓÐ׎üºõ¿Á¿ÌµÄÒªÇó¡£Ò»µ©³ö?ÏÖ¿¨¶Ù¡¢»º³å  £¬ÉõÖÁÊDz¥·Åʧ°Ü  £¬Óû§ÌåÑéµÄ¶ÏÑÂʽϵø±ã²»¿É×èÖ¹  £¬ËæÖ®¶øÀ´µÄ¼´ÊÇÁ÷Á¿µÄÁ÷ʧ¡¢Óû§µÄ²»ÂúÒÔ¼°Æ·ÅÆÐÎÏóµÄÊÜËð¡£

ÔÚÊÓÆµÁ÷ýÌå·þÎñÈÕÒæÖØ´óºÍÖØ´óµÄÅä¾°Ï  £¬ÔõÑùÈ·±£Ã¿Ò»Ö¡»­Ãæ¶¼Äܾ«×¼¡¢¸ßЧµØËÍ´ïÓû§ÖÕ¶Ë  £¬³ÉΪÁ˰ÚÔÚÿһλÊÖÒÕ¿ª·¢ÕߺÍÔËάְԱÑÛǰµÄÖØ´óÌôÕ½¡£

ÔÚÕⳡ׷Çó¼«ÖÂÁ÷ͨµÄÕ½ÕùÖÐ  £¬Nginx  £¬Õâ¿î¸ßÐÔÄܵÄWeb·þÎñÆ÷¡¢·´Ïò´úÀíºÍ¸ºÔØÆ½ºâÆ÷  £¬ÕýÒÔÆä׿ԽµÄÐÔÄܺÍÎÞаµÄÉèÖà  £¬ÊÎÑÝ×ÅÔ½À´Ô½Ö÷ÒªµÄ½ÇÉ«¡£Ëü²»?½ö½öÊÇÒ»¸ö¼òÆÓµÄÎļþ·þÎñÆ÷  £¬¸üÊÇÄܹ»Éî¶È½éÈëÊÓÆµÁ÷ýÌå´«?ÊäÀú³Ì  £¬¾ÙÐÐÈ«·½Î»¡¢Ï¸Ä廯ÓÅ»¯µÄǿʢÒýÇæ¡£

±¾ÎĽ«ÉîÈë̽ÌÖNginxÔõÑùʵÏÖ¡°100%ÊÓÆµÓÅ»¯¡±  £¬Õ¹ÏÖÆä±³ºóµÄÊÖÒÕÔ­ÀíºÍʵ²Ù¼¼ÇÉ  £¬×ÊÖúÄã¹¹½¨Îȹ̡¢¸ßЧ¡¢¼«¾ß¾ºÕùÁ¦µÄÊÓÆµ·þÎñ¡£

µÚÒ»Õ£ºNginxµÄÊÓÆµÓÅ»¯»ùʯ£ºÃ÷È·½¹µãÓë»ù´¡ÉèÖÃ

ҪʵÏÖNginxµÄÊÓÆµÓÅ»¯  £¬Ê×ÏÈÐèÒª¶ÔÆä½¹µãÄÜÁ¦ºÍ»ù´¡ÉèÖÃÓÐÉî¿ÌµÄÃ÷È·¡£NginxÖ®ÒÔÊÇÄÜÔڸ߲¢·¢³¡¾°ÏÂÌåÏÖ¾«²Ê  £¬Àë²»¿ªÆäÊÂÎñÇý¶¯¡¢Òì²½·ÇÛÕ±ÕµÄI/OÄ£×Ó¡£ÕâÒâζ×ÅNginx¿ÉÒÔÓýÏÉÙµÄÀú³ÌºÍÏ̴߳¦Öóͷ£´ó×ڵIJ¢·¢ÅþÁ¬  £¬¼«´óµØÌá¸ßÁË×ÊԴʹÓÃÂʺÍÏìÓ¦ËÙÂÊ  £¬Õâ¹ØÓÚÐèÒªÒ»Á¬¡¢Îȹ̴«Êä´ó×ÚÊý¾ÝµÄÊÓÆµÁ÷À´ËµÖÁ¹ØÖ÷Òª¡£

1.1¾²Ì¬Îļþ·þÎñµÄЧÂÊÓÅ»¯£ºËäÈ»ÊÓÆµÁ÷ýÌåÍùÍùÉæ¼°¶¯Ì¬ÄÚÈݵÄÌìÉúºÍ´¦Öóͷ£  £¬µ«Æä×îÖյĴ«?ÊäÔØÌåÈÔÈ»ÊǾ²Ì¬Îļþ£¨ÈçHLSµÄ.tsÇÐÆ¬  £¬DASHµÄ.mp4»ò.m4sÎļþ£©¡£NginxÔÚ¾²Ì¬Îļþ·þÎñ·½ÃæµÄÄÜÁ¦ÎãÓ¹ÖÃÒÉ¡£

aioÖ¸Áî:¹ØÓÚʹÓÃNginxPlus»òÔÚÖ§³ÖAIO(AsynchronousI/O)µÄ²Ù×÷ϵͳÉÏ  £¬ÆôÓÃaioon;¿ÉÒÔ½øÒ»²½ÌáÉý´óÎļþI/OµÄÐÔÄÜ  £¬ÓÈÆäÊÇÔÚ´¦Öóͷ£´ó×ÚСÎļþ£¨ÈçHLSµÄtsÇÐÆ¬£©Ê±  £¬¿ÉÒÔÓÐÓÃïÔÌ­I/OÛÕ±Õ¡£

openfilecacheÖ¸Áî:»º´æ·­¿ªµÄÎļþÐÎò·ûºÍÔªÊý¾Ý  £¬×èÖ¹ÁËÆµÈԵط­¿ªºÍ¹Ø±ÕÎļþ  £¬Ìá¸ßÁËÎļþ»á¼ûµÄËÙÂÊ¡£open_file_cachemax=1000inactive=20s;µÈÉèÖÿÉÒÔÆ¾Ö¤ÏÖÕæÏàÐξÙÐе÷½â¡£

1.2HTTP/2µÄ?ÍþÁ¦ÊÍ·Å£ºHTTP/2ЭÒéµÄÒýÈëÊÇÊÓÆµ´«ÊäÌåÑéµÄÒ»´Î±¼ÌÚ¡£ÓëHTTP/1.1µÄ?´®ÐÐÇëÇó²î±ð  £¬HTTP/2Ö§³Ö¶à·¸´Óá¢Í·²¿Ñ¹Ëõ¡¢·þÎñÆ÷ÍÆË͵ÈÌØÕ÷  £¬Äܹ»¼«´óµØÌáÉýÔÚ¸ßÑÓ³Ù»ò¸ß¶ª°üÂÊÍøÂçÇéÐÎϵĴ«ÊäЧÂÊ¡£

ÆôÓÃHTTP/2:ÔÚNginxµÄlistenÖ¸ÁîÖмÓÈëhttp2²Î?Êý¼´¿ÉÆôÓá£ÀýÈ磺listen443sslhttp2;¡£¶à·¸´ÓÃ:ÔÊÐíÔÚÒ»¸öTCPÅþÁ¬ÉÏͬʱ´«Êä¶à¸öHTTPÇëÇóºÍÏìÓ¦  £¬×èÖ¹ÁËHTTP/1.1µÄ¡°¶ÓÍ·ÛÕ±Õ¡±ÎÊÌâ  £¬¹ØÓÚÊÓÆµÁ÷ÖÐÆµÈÔµÄÇÐÆ¬ÇëÇóÀ´Ëµ  £¬Ð§¹ûÓÈΪÏÔÖø¡£

Í·²¿Ñ¹Ëõ:ʹÓÃHPACKË㷨ѹËõHTTPÇëÇóºÍÏìӦͷ  £¬ïÔÌ­ÁË´«ÊäµÄ?Êý¾ÝÁ¿  £¬ÓÈÆäÊÇÔÚ¿Í»§¶ËºÍ·þÎñÆ÷Ö®¼ä¾ÙÐдó×ÚµÄСÇëÇóʱ  £¬Äܹ»ÓÐÓýµµÍÍøÂçÑÓ³Ù¡£

1.3TCPBBRÓµÈû¿ØÖÆËã·¨£ºÎªÍøÂç´«Êä×¢ÈëÇ¿ÐļÁTCPBBR(BottleneckBandwidthandRound-trippropagationtime)ÊÇÒ»ÖÖÓÉGoogle¿ª·¢µÄÓµÈû¿ØÖÆËã·¨  £¬ËüÓë¹Å°åµÄ»ùÓÚ¶ª°ü?µÄÓµÈû¿ØÖÆËã·¨£¨ÈçCubic£©²î±ð  £¬BBR¹Ø×¢µÄÊÇÆ¿¾±´ø¿íºÍÍù·µÊ±¼ä¡£

ÔÚÊÓÆµÁ÷ýÌåÕâÖÖ¶Ô´ø¿íºÍÑÓ³ÙÃô¸ÐµÄ³¡¾°Ï  £¬BBRÄܹ»ÏÔÖøÌá¸ß´ø¿íʹÓÃÂÊ  £¬½µµÍ¶ª°ü?ÂÊ  £¬´Ó¶ø´øÀ´¸üÎȹ̵IJ¥·ÅÌåÑé¡£

ÆôÓÃBBR:Õâͨ³£ÐèÒªÔÚ²Ù×÷ϵͳ²ãÃæ¾ÙÐÐÉèÖà  £¬È»ºóÔÚNginxµÄnginx.confÎļþÖÐ  £¬¿ÉÒÔͨ¹ýtcp_nodelayon;ºÍtcp_nopushon;À´ÅäºÏBBRµÄÊÂÇé¡£ËäÈ»Nginx×Ô¼º²»Ö±½Ó¿ØÖÆBBR  £¬µ«ÆäϸÄåµÄÍøÂç²ÎÊýµ÷½âÄܹ»ÓëBBRЭͬ×÷Óà  £¬Ê©Õ¹×î´óЧÄÜ¡£

1.4Òªº¦Á÷ýÌåЭÒéµÄÖ§³Ö£ºHLSÓëDASHNginx¶ÔHLS(HTTPLiveStreaming)ºÍDASH(DynamicAdaptiveStreamingoverHTTP)ÕâÁ½ÖÖÖ÷Á÷µÄÁ÷ýÌåЭÒéÌṩÁËÓÅÒìµÄÖ§³Ö¡£

ÕâЩЭÒ齫ÊÓÆµÖ§½â³ÉСµÄýÌ寬¶Ï  £¬²¢Ìṩһ¸ö²¥·ÅÁбíÎļþ  £¬ÔÊÐí¿Í»§¶ËÆ¾Ö¤ÍøÂç״̬¶¯Ì¬µ÷½â²¥·ÅµÄÂëÂÊ¡£

HLS(.m3u8&.ts):Nginx¿ÉÒÔ¸ßЧµØ»º´æºÍ·Ö·¢.m3u8²¥·ÅÁбí?ÎļþºÍ.tsýÌ寬¶Ï¡£Í¨¹ýºÏÀíµÄ»º´æÉèÖà  £¬¿ÉÒÔ´ó·ù¼õÇáÔ´·þÎñÆ÷µÄѹÁ¦  £¬²¢¼ÓËÙÈ«ÇòÓû§µÄ»á¼ûËÙÂÊ¡£DASH(.mpd&.m4s/.mp4):ÀàËÆÓÚHLS  £¬NginxͬÑùÄܹ»¸ßЧµØ´¦Öóͷ£DASHµÄ.mpdmanifestÎļþºÍÖÖÖÖÂëÂʵÄýÌ寬¶Ï¡£

ngxhttpflv_module(¿ÉÑ¡):¹ØÓÚÐèÒªÖ±²¥ÍÆÁ÷ºÍµã²¥·þÎñµÄ?³¡¾°  £¬NginxµÄngx_http_flv_moduleÄ £¿é¿ÉÒÔÌṩFLV·â×°ºÍ·Ö·¢ÄÜÁ¦  £¬µ«¹ØÓÚHLS/DASHÕâÖÖ¸üÏÖ´ú¡¢¸üͨÓõÄЭÒé  £¬Í¨³£ÊÇÊ×Ñ¡¡£

1.5»º´æÕ½ÂÔ£ºÁôסӢ»ª  £¬¼ÓËÙ»á¼û»º´æÊÇNginxÓÅ»¯ÊÓÆµÁ÷ýÌåÐÔÄܵÄÁíÒ»¸ö½¹µã»·½Ú¡£Í¨¹ýºÏÀíµØ»º´æÊÓÆµÇÐÆ¬ºÍ²¥·ÅÁбí  £¬¿ÉÒÔÏÔÖøïÔÌ­»ØÔ´ÇëÇó  £¬½µµÍ´ø¿í±¾Ç®  £¬²¢ÌáÉýÓû§µÄ?»á¼ûËÙÂÊ¡£

proxy_cacheÖ¸Áî:NginxµÄproxy_cacheÖ¸Áî¿ÉÒÔÓÃÀ´»º´æÀ´×ÔÉÏÓηþÎñÆ÷µÄÏìÓ¦¡£¹ØÓÚÊÓÆµµã²¥·þÎñ  £¬¿ÉÒÔ½«ÊÓÆµÇÐÆ¬»º´æ?µ½Nginx·þÎñÆ÷µÄÍâµØ?´ÅÅÌÉÏ¡£proxy_cache_path/data/nginx/cachelevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;(½ç˵»º´æÂ·¾¶¡¢ÇøÓò¡¢¾ÞϸºÍʧЧʱ¼ä)proxy_cachemy_cache;(ÔÚlocation¿éÖÐÆôÓûº´æ)expiresÖ¸Áî:ÉèÖÃHTTPÏìӦͷÖеÄExpiresºÍCache-Control  £¬Ö¸µ¼ä¯ÀÀÆ÷»òCDN½Úµã¾ÙÐÐÍâµØ»º´æ¡£

¹ØÓÚÊÓÆµÇÐÆ¬  £¬¿ÉÒÔÉèÖýϳ¤µÄ»º´æÊ±¼ä¡£

С½á£ºNginxÖ®ÒÔÊÇÄÜÔÚÊÓÆµÓÅ»¯ÁìÓòÍÑÓ±¶ø³ö  £¬ÕýÊÇÓÉÓÚËüÔÚÍøÂç´«Ê䡢ЭÒéÖ§³Ö¡¢Îļþ·þÎñ»ººÍ´æÕ½ÂԵȷ½Ãæ¶¼¾ß±¸Ç¿Ê¢µÄÄÜÁ¦¡£Í¨¹ý¶Ôsendfile¡¢HTTP/2¡¢BBR¡¢HLS/DASHÖ§³ÖÒÔ¼°proxy_cacheµÈ½¹µãÉèÖõÄÉîÈëÃ÷È·ºÍºÏÀíÔËÓà  £¬ÎÒÃÇÒѾ­Îª¹¹½¨¸ßЧµÄÊÓÆµÁ÷ýÌå·þÎñ´òÏÂÁ˼áʵµÄ»ù´¡¡£

Õâ½ö½öÊÇ×îÏÈ¡£ÔÚÏÂÒ»²¿·Ö  £¬ÎÒÃǽ«½øÒ»²½Ì½Ë÷NginxÔÚCDN¼¯³É¡¢Á÷Á¿µ÷Àí¡¢Çå¾²·À»¤ÒÔ¼°¶¯Ì¬ÓÅ»¯·½ÃæµÄ½ø½×¼¼ÇÉ  £¬ÒÔÆÚµÖ´ï¡°100%ÊÓÆµÓÅ»¯¡±µÄ×îÖÕÄ¿µÄ¡£

µÚ¶þÕ£ºNginxµÄÊÓÆµÓÅ»¯½ø½×£º´ÓCDNµ½¶¯Ì¬ÏìÓ¦µÄÉî¶Èµñ×Á

ÔÚÕÆÎÕÁËNginxÔÚÊÓÆµÓÅ»¯·½ÃæµÄ»ù´¡ÄÜÁ¦Ö®ºó  £¬ÎÒÃÇÐèÒª½øÒ»²½ÉîÈë  £¬½âËøÆä¸ü¸ß¼¶µÄÌØÕ÷  £¬½«ÊÓÆµ²¥·ÅÌåÑéÍÆÏò¼«Ö¡£ÕâÉæ¼°µ½ÔõÑùʹÓÃNginx¹¹½¨¸ßЧµÄCDN¼Ü¹¹  £¬ÔõÑù¾ÙÐÐϸÄ廯µÄÁ÷Á¿¹ÜÀíºÍ¶¯Ì¬ÏìÓ¦  £¬ÒÔ¼°ÔõÑùÓ¦¶ÔÊÓÆµÁ÷ýÌå´«?ÊäÖеÄÖÖÖÖÌôÕ½¡£

2.1¹¹½¨¸ßЧµÄCDN±ßÑØ½Úµã£º¾Í½ü»á¼û  £¬½µµÍÑÓ³ÙÄÚÈÝ·Ö·¢ÍøÂ磨CDN£©ÊÇÏÖ´úÊÓÆµÁ÷ýÌå·þÎñ²»¿É»òȱµÄ×é³É²¿·Ö¡£Nginx×÷ΪһÖÖ¸ßÐÔÄܵÄWeb·þÎñÆ÷  £¬×ÔÈ»ÊʺÏ×÷ΪCDNµÄ±ßÑØ½Úµã¡£Í¨¹ýÔÚÈ«Çò¹æÄ£ÄÚ°²ÅÅNginx·þÎñÆ÷  £¬¿ÉÒÔ½«ÊÓÆµÄÚÈÝ»º´æµ½?ÀëÓû§×î½üµÄµØÀíλÖà  £¬´Ó¶øÏÔÖø½µµÍ»á¼ûÑÓ³Ù  £¬Ìá¸ß²¥·ÅÁ÷ͨ¶È¡£

Nginx×÷Ϊ»ØÔ´´úÀí:CDN±ß??Ôµ½Úµã£¨Nginx£©ÈÏÕæÏìÓ¦Óû§µÄÇëÇó¡£µ±Óû§ÇëÇóÊÓÆµÇÐÆ¬Ê±  £¬ÈôÊDZßÑØ½Úµã»º´æÖв»±£´æ  £¬Nginx»á×÷Ϊ´úÀí  £¬ÏòÔ´Õ¾£¨»òÉÏÒ»¼¶»º´æ½Úµã£©ÌᳫÇëÇó  £¬»ñÈ¡ÄÚÈÝ  £¬²¢½«ÄÚÈÝ·µ»Ø¸øÓû§  £¬Í¬Ê±½«ÄÚÈÝ»º´æµ½ÍâµØ  £¬ÒÔ±¸ºóÐøÓû§»á¼û¡£

proxy_passhttp://origin_server;(ÉèÖûØÔ´µØÖ·)proxy_cache_key"$scheme$request_method$host$request_uri";(½ç˵»º´æ¼ü  £¬È·±£²î±ðÇëÇóµÄ»º´æ¸ôÀë)proxy_cache_valid20030210m;proxy_cache_valid4041m;(Ϊ²î±ðÏìÓ¦ÂëÉèÖòî±ðµÄ?»º´æÓÐÓÃÆÚ)ÓÅ»¯»ØÔ´Õ½ÂÔ:proxy_next_upstream:ÉèÖõ±Ô´·þÎñÆ÷·ºÆð¹ýʧ£¨ÈçÅþÁ¬³¬Ê±¡¢HTTP¹ýʧ£©Ê±  £¬NginxÊÇ·ñʵÑéÅþÁ¬ÏÂÒ»¸öÉÏÓηþÎñÆ÷¡£

proxy_connect_timeout,proxy_send_timeout,proxy_read_timeout:ϸÄåµ÷½âÅþÁ¬¡¢·¢ËͺͶÁÈ¡³¬Ê±Ê±¼ä  £¬ÒÔÓ¦¶ÔÍøÂç²»Îȹ̵ÄÇéÐÎ  £¬×èÖ¹²»ÐëÒªµÄÅþÁ¬ÖÐÖ¹¡£CDN½Úµã¼äµÄЭͬ:ÔÚ¸üÖØ´óµÄCDN¼Ü¹¹ÖÐ  £¬Nginx»¹¿ÉÒÔͨ¹ýproxy_cache_revalidateºÍproxy_cache_min_usesµÈÖ¸Áî  £¬ÊµÏÖ½Úµã¼äµÄ»º´æÍ¬²½ºÍÓÐÓÃÐÔУÑé  £¬½øÒ»²½Ìá¸ßÕûÌ建´æÖÀÖÐÂÊ¡£

2.2ÖÇÄÜÁ÷Á¿µ÷ÀíÓë¸ºÔØÆ½ºâ£ºÓ¦¶Ô·åÖµ  £¬°ü¹Ü¿ÉÓÃÐÔÊÓÆµ·þÎñµÄÁ÷Á¿ÍùÍù¾ßÓÐÍ»·¢ÐÔ  £¬ÓÈÆäÊÇÔÚÈÈÃÅÈüÊÂÖ±²¥»òÖ÷ÒªÊÂÎñÐû²¼Ê±¡£NginxµÄ¸ºÔØÆ½ºâÄÜÁ¦Äܹ»ÓÐÓõؽ«Á÷Á¿ÊèÉ¢µ½¶à¸öºó¶Ë·þÎñÆ÷  £¬×èÖ¹µ¥µã¹ýÔØ  £¬È·±£·þÎñµÄÎȹ̿ÉÓá£

¶àÖÖ¸ºÔØÆ½ºâËã·¨:NginxÖ§³Ö¶àÖÖ¸ºÔØÆ½ºâËã·¨  £¬ÈçÂÖѯ(round-robin)¡¢¼ÓȨÂÖѯ(weight)¡¢IP¹þÏ£(ip_hash)µÈ¡£upstreambackend_servers{server192.168.1.10;server192.168.1.11weight=3;}¿µ½¡¼ì²é:Nginx¿ÉÒÔÉèÖÿµ½¡¼ì²é»úÖÆ  £¬×Ô¶¯ÌÞ³ý²»¿µ½¡µÄºó¶Ë·þÎñÆ÷  £¬²¢½«Á÷Á¿µ¼Ïò¿µ½¡µÄ·þÎñÆ÷  £¬Ìá¸ßÁËϵͳµÄ½áʵÐÔ¡£

health_checkinterval=5sfails=3passes=2uri=/health;(ÐèÒªngx_http_upstream_hc_module)»ùÓÚµØÀíλÖõĵ÷Àí:ͨ¹ýÅäºÏGeoIPÄ £¿é»òÍⲿ·þÎñ  £¬Nginx¿ÉÒÔʵÏÖ»ùÓÚÓû§µØÀíλÖõÄ?Á÷Á¿µ÷Àí  £¬½«Óû§Ö¸µ¼ÖÁµØÀíλÖÃ×î½ü¡¢ÍøÂç×îÓŵķþÎñÆ÷¼¯Èº  £¬½øÒ»²½½µµÍÑÓ³Ù¡£

2.3¶¯Ì¬ÄÚÈݼÓËÙÓëתÂëÓÅ»¯£¨ÍŽáµÚÈý·½Ä £¿é»ò·þÎñ£©ËäÈ»NginxÖ÷񻃮ÓÚ¾²Ì¬ÄÚÈÝ·Ö·¢  £¬µ«Í¨¹ý¼¯³ÉµÚ?Èý·½Ä £¿é»òÓëרҵµÄתÂë·þÎñÅäºÏ  £¬NginxÒ²ÄÜÔÚ¶¯Ì¬ÄÚÈݵÄÌìÉúºÍ¼ÓËÙ·½ÃæÊ©Õ¹×÷Óá£

Lua¾ç±¾¼¯³É(ngx_lua):ʹÓÃngx_luaÄ £¿é  £¬¿ÉÒÔÔÚNginxÄÚ²¿Ö´ÐÐLua¾ç±¾  £¬ÊµÏÖ¸üÖØ´óµÄÓªÒµÂß¼­  £¬ÀýÈ綯̬ÌìÉú²¥·ÅÁÐ±í¡¢¾ÙÐÐʵʱµÄÊý¾Ýͳ¼ÆºÍÆÊÎö  £¬ÉõÖÁ¿ÉÒÔ¼¯³ÉһЩ¼òÆÓµÄתÂëÂß¼­¡£ÓëתÂë·þÎñ¼¯³É:Nginx¿ÉÒÔ×÷Ϊǰ¶Ë´úÀí  £¬½«Óû§µÄתÂëÇëÇóת·¢¸øºó¶ËµÄתÂ뼯Ⱥ¡£

µ±×ªÂëÍê³Éºó  £¬NginxÔÙ½«×ªÂëºóµÄÊÓÆµÎļþ¸ßЧµØ?·Ö·¢¸øÓû§¡£ÕâÖÖ·½·¨½«NginxµÄ¸ßÐÔÄÜI/OÄÜÁ¦ÓëרҵתÂë·þÎñµÄÅÌËãÄÜÁ¦ÍŽáÆðÀ´  £¬ÊµÏÖÁË×îÓÅ»¯µÄÊÓÆµ´¦Öóͷ£Á÷³Ì¡£video_streaming_module(µÚÈý·½):һЩµÚÈý·½NginxÄ £¿é  £¬Èçngx_http_vhost_traffic_status_module¿ÉÒÔÌṩÁ÷Á¿¼à¿Ø  £¬¶øngx_http_flv_module»ò¸üרҵµÄÁ÷ýÌåÄ £¿é  £¬Ôò¿ÉÒÔÎªÌØ¶¨³¡¾°Ìṩ¸üµ×²ãµÄÖ§³Ö¡£

2.4Çå¾²·À»¤ÓëÏÞÁ÷£º°ü¹ÜÎÈ¹Ì  £¬µÖÓù¹¥»÷ÊÓÆµ·þÎñÃæÁÙ×ÅÖÖÖÖÇå¾²Íþв  £¬ÈçDDoS¹¥»÷¡¢µÁÁ´¡¢¶ñÒâÅÀ³æµÈ¡£NginxÌṩÁËǿʢµÄÇå¾²·À»¤ºÍÏÞÁ÷»úÖÆ  £¬ÎªÊÓÆµÁ÷ýÌåµÄÎȹÌÔËÐб£¼Ý»¤º½¡£

DDoS·À»¤:limit_reqÄ £¿é:ÏÞÖÆÀ´×ÔͳһIPµØÖ·µÄÇëÇóƵÂÊ  £¬ÓÐÓõÖÓù±©Á¦ÆÆ½âºÍÁ÷Á¿¹¥»÷¡£limit_req_zone$binary_remote_addrzone=mylimit:10mrate=10r/s;location/{limit_reqzone=mylimitburst=20nodelay;}limit_connÄ £¿é:ÏÞÖÆÍ³Ò»IPµØÖ·µÄ²¢·¢ÅþÁ¬Êý¡£

ngx_http_geo_module:ÆÁÕÏÀ´×ÔÒÑÖª¶ñÒâIP¶Î»òÌØ¶¨¹ú¼ÒµÄ»á¼û¡£µÁÁ´·À»¤(Referer¼ì²é):¼ì²éÇëÇóµÄRefererÍ·  £¬Ö»ÔÊÐíÀ´×ÔÖ¸¶¨ÓòÃûµÄ»á¼û  £¬±ÜÃâÊÓÆµ±»ÆäËûÍøÕ¾²»·¨ÒýÓá£valid_referersnoneblocked*.example.comexample.com;if($invalid_referer){return403;}URLÊðÃû:ͨ¹ý¸øÊÓÆµURLÌí¼Óʱ¼ä´ÁºÍÊðÃû²ÎÊý  £¬È·±£Ö»ÓÐÔÚÓÐÓÃÆÚÄÚÇÒ²ÎÊý׼ȷµÄÇëÇó²Å»ª»á¼ûÊÓÆµ  £¬±ÜÃâURL±»ÀÄÓá£

2.5ÐÔÄÜ¼à¿ØÓëµ÷ÓÅ£ºÒ»Á¬ÓÅ»¯  £¬×·Çó¼«Ö¡°100%ÊÓÆµÓÅ»¯¡±²¢·ÇÒ»õí¶ø¾Í  £¬¶øÊÇÐèÒªÒ»Á¬µÄ¼à¿ØºÍµ÷ÓÅ¡£

Nginx»á¼ûÈÕÖ¾Óë¹ýʧÈÕÖ¾:ÆÊÎöÈÕÖ¾¿ÉÒÔ·¢Ã÷DZÔÚµÄÎÊÌâ  £¬Èç¸ßÑÓ³ÙÇëÇó¡¢¹ýʧÏìÓ¦µÈ¡£Nginx״̬¼à¿Ø:ʹÓÃngx_http_stub_status_module»òµÚÈý·½¼à¿Ø¹¤¾ß£¨ÈçPrometheus+Grafana£©À´ÊµÊ±¼à¿ØNginxµÄÅþÁ¬Êý¡¢ÇëÇóÊý¡¢»º´æÖÀÖÐÂʵÈÒªº¦Ö¸±ê¡£

ϵͳ¼¶¼à¿Ø:ÍŽá·þÎñÆ÷µÄCPU¡¢ÄÚ´æ¡¢´ÅÅÌI/O¡¢ÍøÂçÁ÷Á¿µÈϵͳ¼¶Ö¸±ê  £¬ÖÜÈ«ÆÀ¹ÀNginxµÄÔËÐÐ״̬¡£²ÎÊýµ÷ÓÅ:ƾ֤¼à¿ØÊý¾Ý  £¬¶ÔNginxµÄworkerÀú³ÌÊý¡¢ÅþÁ¬Êý¡¢»º³åÇø´ó?С¡¢»º´æÉèÖõȲÎÊý¾ÙÐÐϸÄ廯µ÷½â  £¬ÒÔµÖ´ï×î¼ÑÐÔÄÜ¡£

ÀýÈç  £¬µ÷½âworker_connectionsÀ´Æ¥Åä·þÎñÆ÷µÄCPU½¹µãÊýºÍÏÖʵ¸ºÔØ¡£

½áÂÛ£ºNginx  £¬¸³ÄÜÎÞÏÞÁ÷ͨµÄÊÓÆµÌåÑé

ͨ¹ýÉîÈëÆÊÎöNginxÔÚ¾²Ì¬Îļþ·þÎñ¡¢HTTP/2ЭÒéÖ§³Ö¡¢TCPBBRÓÅ»¯¡¢HLS/DASHЭÒé´¦Öóͷ£¡¢CDN¹¹½¨¡¢ÖÇÄÜÁ÷Á¿µ÷Àí¡¢Çå¾²·À»¤ÒÔ¼°Ò»Á¬¼à¿ØµÈ·½ÃæµÄǿʢÄÜÁ¦  £¬ÎÒÃÇ¿ÉÒÔÇåÎúµØ¿´µ½NginxÔõÑù³É?ΪʵÏÖ¡°100%ÊÓÆµÓÅ»¯¡±µÄÒªº¦ÀûÆ÷¡£

NginxÒÀ¸½Æä¸ßÐÔÄÜ¡¢¸ß²¢·¢´¦Öóͷ£ÄÜÁ¦¡¢ÎÞаµÄÉèÖÃÒÔ¼°¸»ºñµÄÉú̬ϵͳ  £¬Äܹ»ÓÐÓõؽâ¾öÊÓÆµÁ÷ýÌå·þÎñÖеÄÖÖÖÖÍ´µã  £¬´Ó»ù´¡ÉÏÌáÉýÓû§Ô¢Ä¿ÌåÑé¡£Ëü²»µ«½öÊÇÒ»¸ö·þÎñÆ÷  £¬¸üÊǹ¹½¨Ò»¸öǿʢ¡¢Îȹ̡¢µÍÑÓ³Ù?ÊÓÆµÁ÷ýÌåÆ½Ì¨µÄ¼áʵ»ùʯ¡£Óµ±§Nginx  £¬½âËøÆäÊÓÆµÓÅ»¯Ç±Á¦  £¬Ä㽫ÄÜΪÓû§´øÀ´Ø¨¹ÅδÓеÄÁ÷ͨÊÓÌýÏíÊÜ  £¬ÔÚÕâ¸ö¾ºÕùÇ¿ÁÒµÄÊÓÆµÊ±´úÍÑÓ±¶ø³ö  £¬µãȼÓû§µÄԢĿÈÈÇé  £¬Ó®µÃÊг¡µÄÇàíù¡£

ÔðÈα༭£º Íõ¿ËÇÚ
ÉùÃ÷£ºÖ¤È¯Ê±±¨Á¦ÕùÐÅÏ¢ÕæÊµ¡¢×¼È·  £¬ÎÄÕÂÌá¼°ÄÚÈݽö¹©²Î¿¼  £¬²»×é³ÉʵÖÊÐÔͶ×ʽ¨Òé  £¬¾Ý´Ë²Ù×÷Σº¦×Ôµ£
ÏÂÔØ¡°Ö¤È¯Ê±±¨¡±¹Ù·½APP  £¬»ò¹Ø×¢¹Ù·½Î¢ÐŹ«ÖںŠ £¬¼´¿ÉËæÊ±Ïàʶ¹ÉÊж¯Ì¬  £¬¶´²ìÕþ²ßÐÅÏ¢  £¬ÕÆÎղƲú»ú»á¡£
ÍøÓÑ̸ÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
·¢ËÍ
ÍøÓÑ̸ÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨  £¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞ̸ÂÛ
ΪÄãÍÆ¼ö
ÍøÕ¾µØÍ¼