»Æ½ð³ÇÍøÕ¾

Nginx100%ÊÓÆµÓÅ»¯
ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷Õߣº³ÂÑÅÁÕ2026-03-04 03:17:20
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£¬»ò¹Ø×¢¹Ù·½Î¢ÐŹ«Öںţ¬¼´¿ÉËæÊ±Ïàʶ¹ÉÊж¯Ì¬£¬¶´²ìÕþ²ßÐÅÏ¢£¬ÕÆÎղƲú»ú»á ¡£
ÍøÓÑ̸ÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
·¢ËÍ
ÍøÓÑ̸ÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨£¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞ̸ÂÛ
ΪÄãÍÆ¼ö
ÍøÕ¾µØÍ¼