Nginx100%ÊÓÆµÓÅ»¯Ôõô×ö£ºÌáÉýÊÓÆµ²¥·ÅÁ÷³©¶ÈµÄÅäÖò½Öè

ÆðÔ´£º½çÃæÐÂÎÅ2026-07-27 05:06:58
×ÖºÅ
³¬´ó
´ó
³ß¶È
С

ÈôÊÇ¡°100%ÊÓÆµÓÅ»¯¡±ÊÇÖ¸ÊÓÆµ¿Ï¶¨²»¿¨¶Ù ¡¢¡¢¡¢¼ÓÔØËÙ¶ÈʼÖÕ×î¿ì£¬µ¥¿¿ Nginx ÎÞ·¨×÷³öÕâÑùµÄ±£ÕÏ¡£Nginx ÖØÒªÕÆ¹ÜÊÓÆµÎļþµÄ´«ÊäЧÄÜ ¡¢¡¢¡¢¶ÏµãÒªÇó ¡¢¡¢¡¢»º´æºÍ²¢·¢Á¬ÊÕÊÜÀí £»ÊÓÆµ±àÂëÖÊÁ¿ ¡¢¡¢¡¢·þÎñÆ÷´ø¿í ¡¢¡¢¡¢´ÅÅÌ»úÄÜ ¡¢¡¢¡¢²¥·ÅÆ÷Õ½ÊõÒÔ¼°Óû§ÍøÂ磬ͬÑù»áÓ°Ïì²¥·ÅÂÄÀú¡£

¶ÔÓÚͨ³£ MP4 ÊÓÆµ£¬Ó¦ÖصãÅäÖÃ×Ö½ÚÁìÓòÒªÇó ¡¢¡¢¡¢sendfile ¡¢¡¢¡¢ºÏÀí»º´æºÍ MP4 ÔªÊý¾ÝµØÎ» £»¶ÔÓÚ HLS ÊÓÆµ£¬ÔòÒª±ðÀëÓÅ»¯²¥·ÅÁбíÓë·ÖƬ»º´æ£¬²¢¹²Í¬¶àÂëÂÊ×ÔÊÊÓ¦²¥·Å¡£ÏÈÈ·¶¨ÊÓÆµÀàÐÍ£¬ÔÙÑ¡Ôñ¶ÔÓ¦¹æ»®£¬±ÈäĿ¶Ñµþ Nginx ²ÎÊý¸üÓÐЧ¡£

ÏÈÅжϿ¨¶Ùµ½µ×À´×ÔÄÄÀï

ÊÓÆµÎÊÌâ²»Ô¸¶¨ÊÇ Nginx ÅäÖÃÃýÎ󡣿£Äܹ»Ïȹ۲ìä¯ÀÀÆ÷¿ª·¢Õß¹¤¾ßÖеÄÒªÇó״̬ ¡¢¡¢¡¢·þÎñÆ÷´ø¿íºÍ´ÅÅ̶ÁдÇé¿ö£¬ÔÙÈ·¶¨ÓÅ»¯·½Ïò¡£

ÊÓÆµ²¥·ÅÒì³£ÓëÓÅÏÈÅŲ鷽Ïò
¾°Ïó ÓÅÏȲ鳭 ´¦Ö÷½Ïò
ÎÞ·¨Í϶¯½ø¶È»òÍ϶¯ºóÖØÐÂÆðÍ· ÊÇ·ñ·µ»Ø 206 ¡¢¡¢¡¢ÊÇ·ñ´æÔÚ Content-Range ²é³­ Range ÒªÇó ¡¢¡¢¡¢·´Ïò´úÀíºÍÊÓÆµ·â×°Ìåʽ
ÊÓÆµ³õ´Î´ò¿ªºÜÂý MP4 µÄ moov ÔªÊý¾ÝµØÎ» ¡¢¡¢¡¢´ÅÅ̶ÁÈ¡ºÍÊ××Ö½ÚÏìÓ¦¹¦·ò ÆôÓà faststart ¡¢¡¢¡¢sendfile »ººÍ´æ
¶¥·åÆÚ¶àÈËͬʱ¿¨¶Ù ³ö¿Ú´ø¿í ¡¢¡¢¡¢²¢·¢ÏνÓÊý ¡¢¡¢¡¢»ØÔ´Á÷Á¿ ʹÓà CDN ¡¢¡¢¡¢·Ö¼¶ÂëÂʺͱßÔµ»º´æ
HLS ²¥·ÅÖÐ;ƵÈÔ»º³å m3u8 ¸üР¡¢¡¢¡¢ts »ò m4s ·ÖƬÊÇ·ñÄÜʵʱ»ñÈ¡ ·Ö±æ²¥·ÅÁбíºÍ·ÖƬµÄ»º´æÕ½Êõ

MP4 Ö±³öʱ£¬Ïȱ£ÕÏÍ϶¯ºÍ·Ö¶ÎÒªÇóÕý³£

HTML5 ²¥·ÅÆ÷Í϶¯½ø¶Èʱ£¬Í¨³ £»áÏò·þÎñÆ÷·¢ËÍ´øÓÐ Range ÒªÇóÍ·µÄ×Ö½ÚÁìÓòÒªÇó¡£Õý³£Çé¿öÏ£¬·þÎñÆ÷Ó¦·µ»Ø 206 Partial Content£¬²¢´øÓÐ Content-Range¡£ÈôÊÇʼÖÕ·µ»ØÆëÈ«Îļþ£¬Óû§Í϶¯½ø¶È¾Í¿ÉÄÜÆÚ´ýºÜ³¤¹¦·ò£¬ÉõÖÁ²û·¢ÎªÎÞ·¨¿ì½ø¡£

Nginx ¾²Ì¬ÎļþĬÈÏÖ§³ÖÁìÓòÒªÇ󣬵«ÈôÊÇÇ°Ãæ»¹ÓÐ CDN ¡¢¡¢¡¢¶ÔÏó´æ´¢»ò·´Ïò´úÀí£¬±ØÒªÖð²ã²é³­ÊÇ·ñÃýÎóɾ³ýÁË Range ÒªÇóÍ·¡£Í¨³£ MP4 ÎļþÄܹ»Ê¹ÓÃÏÂÃæµÄ»ù´¡ÅäÖÃ×÷ΪÆðµã£º

location ~* \.mp4$ { sendfile on; tcp_nopush on; gzip off; add_header Accept-Ranges bytes; add_header Cache-Control "public, max-age=3600"; mp4; }

mp4 Ö¸ÁîÒÀÀµ Nginx µÄ MP4 Ä£¿£¿é£¬²¢²»ÊÇËùÓбàÒë°æ±¾¶¼Ä¬ÈÏÔ̺¬¡£ËüÊʺϱØÒª MP4 αÁ÷ʽ²¥·Å»ò°´ÕØÊ¼¹¦·òÒªÇóµÄ³¡¾°£¬µ«²»ÄÜ´úÌæ Range Ö§³Ö¡£Èô·þÎñÆ÷ÌáÐÑδָ֪ÁӦÏÈÈ·ÈÏÄ£¿£¿éÊÇ·ñ×°Ö㬲»ÒªÖ±½Ó°ÑÕâÌõÖ¸Áî¸´ÖÆµ½³ö²ú»·¾³¡£

ÊÓÆµÎļþ×ÔÉíÒ²±ØÒª´¦Öá£MP4 µÄ moov ÔªÊý¾ÝÈôÊÇλÓÚÎļþĩ⣬²¥·ÅÆ÷ÍùÍùÒª¶ÁÈ¡½Ï¶àÄÚÈݺóÄÜÁ¦ÆðÍ·²¥·Å¡£ÉÏ´«Ç°Äܹ»Í¨¹ý±àÂ빤¾ßÆôÓà faststart£¬°Ñ?±ØÒªÔªÊý¾ÝÒÆ¶¯µ½?Îļþǰ²¿?¡£Õâ¸ö´¦ÖÃͨ³£±Èµ¥¶Àµ÷Õû Nginx ²ÎÊý¸üÄܸÄÉÆ³õ´Î´ò¿ªËÙ¶È¡£

²»?Òª¶ÔÊÓÆµÄÚÈÝÆôÓà gzip ѹËõ

MP4 ¡¢¡¢¡¢WebM ¡¢¡¢¡¢TS ºÍ M4S ÒѾ­ÊôÓÚѹËõºóµÄýÌåÌåʽ£¬³ÖÐøÊ¹Óà gzip ÍùÍù»áÔö³¤ CPU ¿÷Ëð£¬È´ºÜÄÑÏÔÖøÏ÷¼õ´«?ÊäÌå»ý¡£Òò¶ø£¬ÊÓÆµ¶þ½øÖÆÎļþͨ³£Ó¦¹Ø±Õ gzip¡£

m3u8 ²¥·ÅÁбíÊÇÎı¾Îļþ£¬Ìå»ý½ÏСʱÊÕÒæÓÐÏÞ£¬µ«Äܹ»Æ¾¾ÝÏÖʵÏìÓ¦¾Þϸ¾ö¶¨ÊÇ·ñѹËõ¡£ÅäÖÃʱҪ°ÑÎı¾²¥·ÅÁбíºÍÊÓÆµ·ÖƬ·Ö¸ô´¦Öã¬Ô¤·ÀÒ»¸öͨÓù涨ͬʱ×÷ÓÃÓÚËùÓÐýÌåÎļþ¡£

HLS ÊÓÆµÒª·Ö¸ôÉèÖò¥·ÅÁбíºÍ·ÖƬ»º´æ

HLS ͨ³£ÓÉÒ»¸ö»ò¶à¸ö m3u8 ²¥·ÅÁбí£¬ÒÔ¼°´óÁ¿ ts »ò m4s ·ÖƬ×é³É¡£ÕâÁ½ÀàÎļþµÄ¸üÐÂÆµÂÊ·ÖÆç£¬²»ÄÜʹÓÃÆëȫһÑùµÄ»º´æ¹¦·ò¡£

  • Ö±²¥ m3u8£º±ØÒªÆµÈÔ¸üУ¬»º´æ¹¦·òÓ¦¶Ì£¬±ØÒªÊ±Ê¹Óà no-cache£¬Ô¤·À²¥·ÅÆ÷Äõ½¹ýÆÚµÄ·ÖƬÁбí?¡£
  • µã²¥ m3u8£ºÄÚÈݰ䲼ºó¸ù»ù²»±ä£¬Äܹ»ÉèÖÃÊʶȻº´æ£¬µ«ÖØÐ°䲼ͬÃûÎļþʱҪ˼¿¼»º´æË¢Ð¡£
  • µã²¥ ts »ò m4s£ºÈôÊÇÎļþÃû´ø°æ±¾ºÅÇÒ²»»á±»¸²¸Ç£¬Äܹ»ÉèÖýϳ¤»º´æ¹¦·ò£¬Ï÷¼õ·´¸´»ØÔ´¡£
  • Ö±²¥·ÖƬ£º»º´æ¹¦·ò²»Äܳ¬¹ýÖ±²¥´°¿ÚµÄÏÖʵÐèÒª£¬²»È»¿ÉÄܰÑÒѾ­Ê§Ð§µÄ·ÖƬ³ÖÐøÌṩ¸ø²¥·ÅÆ÷¡£

ÈôÊÇÊÓÆµ¿çÓò²¥·Å£¬»¹Òª²é³­ÏìÓ¦ÖÐµÄ CORS ÅäÖá£ÔÊÐíÆðÔ´Ó¦¾¡Á¿ÏÞ¶¨ÎªÏÖʵҵÎñÓòÃû £»Ê¹ÓõǼ̬»ò Cookie ʱ£¬²»Ò˵¥Ò»Ê¹ÓÃËÁÒâÆðÔ´µÄͨÅäÅäÖá£

ÏνÓÊýºÍÎļþ´«?Êä²ÎÊýÒª½áºÏ·þÎñÆ÷ÉÏÏÞ

¾²Ì¬ÊÓÆµ´«ÊäÄܹ»Ê¹Óà sendfile on£¬ÈÃÎļþÊý¾Ý¸ü¸ßЧµØ´ÓÎļþϵͳ½»¸øÍøÂç²ã£¬Ï÷¼õ²»ÓÃ?ÒªµÄÓû§Ì¬¿½±´¡£tcp_nopush on ͨ³£Óë sendfile һ·ʹÓã¬ÓÐÖúÓÚÏ÷¼õ·¢ËÍ´óÁ¿Ð¡Êý¾Ý°üµÄÇé¿ö¡£

²¢·¢²ÎÊý²»?ÄÜÔ½´óÔ½ºÃ¡£worker_processes Äܹ»Æ¾¾Ý CPU ºËÊý×Ô¶¯ÉèÖã¬worker_connections ÔòÒª½áºÏÎļþÃèÊö·ûÉÏÏÞ ¡¢¡¢¡¢´ú?ÀíÏνÓÊýºÍÏÖʵ´ø¿íÍÆËã¡£Ò»¸ö Nginx ¹¤×÷¹ý³ÌµÄÏνÓÊý²¢²»µÈÓÚÄܹ»³ÐÔØµÄÓÐЧÊÓÆµÓû§Êý£¬ÓÉÓÚ·´Ïò´úÀí³¡¾°ÖУ¬Ò»ÃûÓû§¿ÉÄÜͬʱռÓÿͻ§¶ËÏνӺÍÉÏÓÎÏνÓ¡£

worker_processes auto; events { worker_connections 4096; } http { sendfile on; tcp_nopush on; keepalive_timeout 65; }

ÉÏÃæµÄÊýÖµÖ»ÊÇÅäÖÃ˼·£¬²»?ÊÇËùÓзþÎñÆ÷¶¼Ó¦ÕÕ°á¡£Èç¹ûÿ¸öÓû§³ÖÐø¿÷Ëð 5 Mbps£¬100 ¸öÓû§ÀíÂÛÉϾͱØÒªÔ¼ 500 Mbps µÄÊÓÆµÁ÷Á¿£¬»¹ÒªÔ¤ÁôºÍ̸¿ªÏú ¡¢¡¢¡¢ÍøÒ³ÒªÇóºÍÆäËûÒµÎñµÄ´ø¿í¡£´ø¿í²»ÊµÊ±£¬³ÖÐøÔö³¤ worker_connections ²¢?²»Äܽâ¾ö¿¨¶Ù¡£

·´Ïò´úÀíºÍ CDN ³¡¾°ÒªÖصã²é³­»ØÔ´

ÈôÊÇ Nginx Ç°ÃæÏÎ½Ó CDN£¬»òÕß Nginx ºóÃæ»¹ÓÐÀûÓ÷þÎñ ¡¢¡¢¡¢¶ÔÏó´æ´¢£¬ÊÓÆµÒªÇóµÄÆ¿¾±¿ÉÄܳʴ˿̻ØÔ´Á´Â·¡£Ó¦È·ÈÏÉÏÓÎÊÇ·ñÖ§³Ö Range£¬ÊÇ·ñÕýÈ··µ»Ø Content-Length ¡¢¡¢¡¢Content-Type ºÍ Content-Range£¬ÒÔ¼° CDN ÊÇ·ñ»º´æÁË·ÖÆ¬¡£

¹Ì¶¨²»?±äµÄµã²¥ÊÓÆµÊʺÏʹÓôø°æ±¾ºÅµÄÎļþÃû£¬ÀýÈç¸ü»»ÊÓÆµºóŤתÎļþõè¾¶£¬¶ø²»ÊǸ²¸Çͳһ¸öµØÖ·¡£ÕâÑùÄܹ»°²ÐÄÉèÖýϳ¤»º´æ£¬Ò²ÄÜÔ¤·ÀÓû§ÓÉÓھɻº´æ³ÖÐø²¥·Å¹ýÆÚÎļþ¡£´ø?ȨÏÞµÄÊÓÆµÔòÒªÉóÉ÷ÉèÖù«¹²»º´æ£¬Ô¤·À·ÖÆçÓû§Ö®¼ä²úÉúÄÚÈÝԽȨ¡£

¶ÔÓÚ´óÁ¿ÒìµØÓû§£¬Nginx Ô´Õ¾Ö»ÕÆ¹Ü²»±ä»ØÔ´£¬CDN ÕÆ¹Ü¾Í½ü·Ö·¢£¬Í¨³£±Èµ¥Ì¨·þÎñÆ÷Ö±½Ó³ÐÔØËùÓÐÊÓÆµÁ÷Á¿¸üºÏÀí¡£ÈôÊÓÆµÎļþºÜ´ó ¡¢¡¢¡¢½Ó¼û½âÓò·ÖÉ¢£¬ÓÅÏÈÆÀ¹À´ø¿íºÍ CDN ÉäÖÐÂÊ£¬¶ø²»ÊÇÏȵ÷ÕûÏνӳ¬²»¶Ï¼ä¡£

Nginx½â¾ö²»?Á˵IJ¿ÃÅ£¬Òª´Ó±àÂëºÍ²¥?·ÅÆ÷¶¯ÊÖ

Nginx ²»»á×Ô¶¯½µµÍÊÓÆµÂëÂÊ£¬Ò²²»»á°ÑÒ»¸ö 4K Îļþ±ä?³ÉÊʺÏÒÆ¶¯ÍøÂç²¥?·ÅµÄ°æ±¾¡£ÏëÈÃ·ÖÆçÍøÂçǰÌá϶¼Î¬³ÖÁ÷³©£¬Í¨³£±ØÒª³ï±¸¶àµµÇ峺¶ÈºÍÂëÂÊ£¬²¢Èò¥?·ÅÆ÷ƾ¾Ýʵʱ´ø¿í½øÐÐ×ÔÊÊÓ¦Çл»¡£

  • µã²¥ MP4£º³ï±¸ÏàÒ˵ķֱæÂʺÍÂëÂÊ£¬²¢½« moov ÔªÊý¾Ý·Åµ½Îļþǰ²¿¡£
  • µã²¥ HLS£ºÌìÉú¶àÂëÂʲ¥·ÅÁбí£¬Èò¥·ÅÆ÷ÔÚÍøÂç±ä²îʱÇл»µ½µÍÂëÂÊ·ÖÆ¬¡£
  • Ö±²¥ HLS£ºÎ¬³Ö¹Ø¼üÖ¡¾àÀëÓë·ÖƬÌìǵЭµ÷£¬Ô¤·ÀÇл»ÂëÂÊʱ³öÏÖ³¤¹¦·òÆÚ´ý¡£
  • ÒÆ¶¯¶Ë²¥·Å£º²»ÒªÖ»Ìṩ¸ßÂëÂʰ汾£¬Ó¦Æ¾¾ÝÖÕ¶ËÆÁÄ»ºÍÍøÂçǰÌáÉèÖúÏÀíµÄÇ峺¶ÈÌݶÈ¡£

ÈôÊÇÔ­ÊÓÆµ×ÔÉíÂëÂÊÔ¶¸ßÓÚÓû§ÍøÂç¿É³Ð?ÊÜÁìÓò£¬Nginx Ö»ÄܰÑÎÊÌâ¸ü¿ìµØ´«¸øÓû§£¬²»ÄÜ´Óµ××Ó?ÉϽâ³ý»º³å¡£Òò¶ø£¬¡°100%ÓÅ»¯¡±¸üÊʺÏ×÷ΪÅŲéÖ¸±ê£ºÈÃÒªÇó ¡¢¡¢¡¢Îļþ ¡¢¡¢¡¢»º´æ ¡¢¡¢¡¢´ø¿íºÍ±àÂëÿһ²ã¶¼Ã»ÓÐÏÔÖøÆ¿¾±£¬¶ø²»ÊÇÒÀÀµÄ³Ò»¸öÉñÆæ¿ª¹Ø¡£

ÉÏÏߺóÓÃËÄÏîÖ¸±êÑéÖ¤³ÉЧ

  • ²é¿´ÊÓÆµ³õ´ÎÒªÇóÊÇ·ñ·µ»ØÕýÈ·µÄ Content-Type£¬MP4 ²»Ó¦±»µ±³Éͨ³£Îı¾»òÏÂÔØÎļþ´¦Öá£
  • Í϶¯²¥·Å½ø¶È£¬²é³­ÒªÇóÊÇ·ñ³öÏÖ 206 Partial Content ¡¢¡¢¡¢Accept-Ranges ºÍÓÐЧµÄ Content-Range¡£
  • ¶Ô±È»º´æÉäÖÐǰºóµÄÊ××Ö½Ú¹¦·ò ¡¢¡¢¡¢ÏÂÔØËٶȺͻØÔ´Á÷Á¿£¬È·ÈÏ»º´æµÄÈ·Ï÷¼õÁËԴվѹÁ¦¡£
  • Ôڵʹø¿í ¡¢¡¢¡¢Òƶ¯ÍøÂçºÍ¸ß²¢·¢Çé¿öϱðÀë²âÊÔ£¬¹Û²ì Nginx ½Ó¼ûÈÕÖ¾ ¡¢¡¢¡¢ÃýÎóÈÕÖ¾ ¡¢¡¢¡¢CPU ¡¢¡¢¡¢´ÅÅÌ I/O ºÍ³ö¿Ú´ø¿í¡£

Ö»Óе±ÎļþÌåʽ ¡¢¡¢¡¢Range ÒªÇó ¡¢¡¢¡¢»º´æÕ½Êõ ¡¢¡¢¡¢´ø¿íÈÝÁ¿ºÍ×ÔÊÊÓ¦ÂëÂÊͬʱƥÅäÒµÎñ³¡¾°Ê±£¬Nginx ÊÓÆµ²¥·ÅÄÜÁ¦»ñµÃ²»±äµÄÁ÷³©²û·¢¡£

У¶Ô£ºÕÔÉÙ¿µ(rsln0LhyhW9amXY2JGVPfAtTlKfWu1zrzKg)

ÔðÈαà×룺 ÕÔÉÙ¿µ
ΪÄãÍÆ¼ö
Óû§ÆÀÂÛ
µÇ¼ºóÄܹ»½²»°
ÍøÓÑÆÀÂÛ½ö¹©Æä±í°×СÎÒ¼û½â£¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞÆÀÂÛ
³µ?ÆóËõ¶ÌÕËÆÚ£¬¹©¸øÁ´ÓкÎÓ°Ïì
¡¾ÍøÕ¾µØÍ¼¡¿