ÔÚÊý×Öʱ´ú£¬ÊÓÆµÒѳÉΪÐÅÏ¢Èö²¥ºÍÓéÀÖÏûDzµÄ?Ö÷Á÷ÔØÌå¡£´Ó¶ÌÊÓÆµµÄ±¬·¢µ½?¸ßÇåÖ±²¥µÄÆÕ¼°£¬Óû§¶ÔÊÓÆµµÄÌåÑéÒªÇóÔ½À´Ô½¸ß¡£Á÷ͨµÄ²¥·Å¡¢¼«µÍµÄÑÓ³Ù¡¢¸»ºñµÄ»¥¶¯£¬ÕâЩ¶¼Àë²»¿ª±³ºóǿʢµÄÊÖÒÕÖ§³Ö¡£¶øNginx£¬Õâ¸öÒÔ¸ßÐÔÄÜ¡¢¸ß²¢·¢Öø³ÆµÄWeb·þÎñÆ÷£¬ÔçÒÑÔÚÊÓÆµÁ÷ýÌåÁìÓòÕ¹ÏÖ³öÆäÆæÒìµÄ¼ÛÖµ£¬ÓÈÆäµ±?NginxÓë¡°100¡±Õâ¸öÊý×Ö½áÊÊʱ£¬ËüËÆºõ±»¸¶ÓëÁ˸üǿʢµÄÁ¦Á¿£¬³ÉΪÊÓÆµÁìÓò²»¿ÉºöÊӵı£´æ¡£
NginxÖ®ÒÔÊÇÄÜÔÚÊÓÆµÁìÓòÍÑÓ±¶ø³ö£¬²¢·ÇÎÞÒâ¡£Æä½¹µãÓÅÊÆÔÚÓÚ£º
¸ßÐÔÄÜÓë¸ß²¢·¢´¦Öóͷ£ÄÜÁ¦£ºNginx½ÓÄÉÊÂÎñÇý¶¯¡¢Òì²½·ÇÛÕ±ÕµÄI/OÄ£×Ó£¬Äܹ»ÇáËÉ´¦Öóͷ£º£Á¿µÄ²¢·¢ÅþÁ¬¡£¹ØÓÚÊÓÆµÁ÷ýÌåÕâÖÖÐèÒªÒ»Á¬¡¢Îȹ̴«Êä´ó×ÚÊý¾ÝµÄ³¡¾°£¬NginxµÄÐÔÄÜÓÅÊÆÓÈΪͻ³ö£¬Äܹ»ÓÐÓÃ×èÖ¹Òò·þÎñÆ÷Æ¿¾±µ¼ÖµIJ¥·Å¿¨¶Ù¡£Ä£¿é»¯Éè¼Æ£¬¸ß¶È¿ÉÀ©Õ¹£ºNginxÓµÓи»ºñµÄÄ£¿é£¬¿ÉÒÔÆ¾Ö¤ÐèÇóÎÞа¼ÓÔØ¡£
¹ØÓÚÊÓÆµÁ÷ýÌ壬ÎÒÃÇ¿ÉÒÔ½èÖúngx_http_flv_module¡¢ngx_http_mp4_moduleµÈÄ£¿é£¬ÉõÖÁ¼¯³ÉµÚÈý·½Ä£¿éÀ´Ö§³ÖHLS(HTTPLiveStreaming)¡¢DASH(DynamicAdaptiveStreamingoverHTTP)µÈÖ÷Á÷ÊÓÆµÁ÷ÐÒé¡£
ÓÅÒìµÄ¸ºÔØÆ½ºâÄÜÁ¦£ºÊÓÆµÆ½Ì¨ÍùÍùÐèÒª·Ö·¢´ó×ÚµÄÊÓÆµÄÚÈÝ£¬NginxǿʢµÄ¸ºÔØÆ½ºâËã·¨¿ÉÒÔÓÐÓõؽ«ÇëÇóÊèÉ¢µ½¶ą̀·þÎñÆ÷ÉÏ£¬È·±£?·þÎñµÄÎȹÌÐԺͿÉÓÃÐÔ¡£±¾Ç®Ð§Ò棺Ïà½ÏÓÚһЩÉÌÒµ»¯µÄÁ÷ýÌå·þÎñÆ÷½â¾ö¼Æ»®£¬NginxÊÇ¿ªÔ´Ãâ·ÑµÄ£¬Õâ¹ØÓÚÊ×´´ÆóÒµ»òÔ¤ËãÓÐÏÞµÄÏîÄ¿À´Ëµ£¬ÎÞÒɽµµÍÁËÊÖÒÕÃż÷ºÍÔËÓª±¾Ç®¡£
µ±ÎÒÃǽ«ÑÛ¹â¾Û½¹ÓÚ¡°Nginx100ÊÓÆµ¡±Ê±£¬ÎÒÃÇ̸ÂÛµÄÍùÍùÊÇNginxÔÚʵÏÖÏÖ´úÊÓÆµÁ÷ýÌå±ê×¼ÉϵÄ?¾«²ÊÌåÏÖ¡£HLSºÍDASHÊÇÏÖÔÚ×îÖ÷Á÷µÄÁ½ÖÖ×Ô˳Ӧ±ÈÌØÂÊÁ÷ýÌåÐÒ飬ËüÃÇÄܹ»Æ¾Ö¤Óû§µÄÍøÂç״̬ºÍ×°±¸ÄÜÁ¦£¬¶¯Ì¬µ÷½âÊÓÆµµÄÂëÂʺÍÇø·ÖÂÊ£¬´Ó¶øÌṩ×î¼ÑµÄԢĿÌåÑé¡£
HLS£¨HTTPLiveStreaming£©£ºÓÉApple¹«Ë¾¿ª·¢£¬ÆÕ±éÓ¦ÓÃÓÚiOS¡¢macOSµÈÆ»¹û×°±¸£¬µ«Ò²ÒѳÉΪ¿çƽ̨µÄÊÂʵ±ê×¼¡£HLS½«ÊÓÆµÖ§½â³ÉСµÄ¡¢»ùÓÚHTTPµÄ.tsÎļþƬ¶Ï£¬²¢Í¨¹ýÒ»¸ö.m3u8²¥·ÅÁбíÎļþÀ´Ë÷ÒýÕâЩƬ¶Ï¡£
NginxÅäºÏngx_http_mp4_moduleÄ£¿é£¬¿ÉÒÔÀû±ãµØ½«MP4Îļþת»»ÎªHLSÃûÌ㬻òÖ±½Ó×÷ΪHLSÁ÷ýÌåµÄÔ´¡£DASH£¨DynamicAdaptiveStreamingoverHTTP£©£ºÊÇÒ»ÖÖ¿ª·Å±ê×¼£¬ÓÉMPEG£¨MovingPictureExpertsGroup£©¿ª·¢£¬Ö¼ÔÚÌṩÓëHLSÀàËÆµÄ×Ô˳Ӧ±ÈÌØÂÊÁ÷ýÌ幦Ч£¬µ«Ô½·¢ÎÞаºÍ¿ª·Å¡£
DASHʹÓÃMPD£¨MediaPresentationDescription£©ÎļþÀ´ÐÎòÊÓÆµÄÚÈÝ£¬²¢½ÓÄÉ»ùÓÚHTTPµÄýÌå·Ö¶Î£¨MediaSegments£©·½·¨¡£NginxͬÑù¿ÉÒÔͨ¹ýÊʵ±µÄÉèÖúÍÄ£¿éÀ´Ö§³ÖDASHÁ÷ýÌåµÄ·Ö·¢¡£
ÒªÈÃNginx³ÐÔØÊÓÆµÁ÷ýÌå·þÎñ£¬»ù´¡ÉèÖÃÊǵÚÒ»²½¡£Õâͨ³£Éæ¼°ÒÔϼ¸¸öÒªº¦µã£º
°²?×°Nginx£ºÈ·±£ÄúµÄ·þÎñÆ÷ÉÏÒѾװÖÃÁËNginx¡£Í¨³£¿ÉÒÔʹÓÃϵͳµÄ°ü¹ÜÀíÆ÷¾ÙÐÐ×°Öã¬ÀýÈçÔÚUbuntu/DebianÉÏʹÓÃsudoaptupdate&&sudoaptinstallnginx£¬ÔÚCentOS/RHELÉÏʹÓÃsudoyuminstallepel-release&&sudoyuminstallnginx¡£
¾²Ì¬Îļþ·þÎñÉèÖãºÊÓÆµÆ¬¶Ï£¨.ts,.mp4µÈ?£©ºÍ²¥·ÅÁбíÎļþ£¨.m3u8,.mpd£©ÊµÖÊÉ϶¼ÊǾ²Ì¬Îļþ¡£ÔÚNginxµÄnginx.conf»ò×ÔÁ¦µÄÕ¾µãÉèÖÃÎļþÖУ¬ÎÒÃÇÐèÒªÉèÖÃÒ»¸ölocation¿éÀ´Ö¸ÏòÊÓÆµÎļþµÄ´æ´¢Ä¿Â¼£¬²¢ÉèÖúÏÊʵÄMIMEÀàÐÍ¡£
http{#...ÆäËûÉèÖÃ...server{listen80;server_nameyour_domain.com;location/video/{alias/path/to/your/video/files/;#ÊÓÆµÎļþ´æ?·ÅµÄÏÖʵ·¾¶autoindexon;#¿ÉÑ¡£¬ÓÃÓÚÀû±ãä¯ÀÀtypes{application/vnd.apple.mpegurlm3u8;video/mp2tts;video/mp4mp4;}add_headerCache-Control"public,max-age=3600";#Êʵ±µÄ»º´æ?Õ½ÂÔ}#...ÆäËûÉèÖÃ...}}
ÆôÓÃHTTP/2£ºHTTP/2Ïà±ÈHTTP/1.1ÔÚ´«Êä´ó×ÚСÎļþ£¨ÈçHLSµÄÊÓÆµÆ¬¶Ï£©Ê±¾ßÓÐÏÔÖøÓÅÊÆ£¬¿ÉÒÔïÔÌÑÓ³Ù¡£È·±£ÄúµÄNginx±àÒëʱÒÑÆôÓÃSSL/TLS£¬²¢ÔÚlistenÖ¸ÁîÖÐÌí¼Óhttp2²ÎÊý¡£
server{listen443sslhttp2;server_nameyour_domain.com;ssl_certificate/path/to/your/certificate.crt;ssl_certificate_key/path/to/your/private.key;#...ÆäËûSSLÉèÖÃ...location/video/{alias/path/to/your/video/files/;types{application/vnd.apple.mpegurlm3u8;video/mp2tts;video/mp4mp4;}add_headerCache-Control"public,max-age=3600";}}
¡°Nginx100¡±²¢?²»µ«½öÊÇÒ»¸ö¼òÆÓµÄÊý×Ö×éºÏ£¬ËüÏóÕ÷×ÅNginxÔÚÊÓÆµ´¦Öóͷ£ÄÜÁ¦µÄ¡°Âú·Ö¡±ÌåÏÖ£¬ÒÔ¼°ÆäÔÚÍøÂç´«ÊäÖеġ°100%¡±¿É¿¿ÐÔ¡£Í¨¹ýºÏÀíµÄÉèÖúÍÓÅ»¯£¬NginxÄܹ»Ê¤ÈδÓÊÓÆµµÄתÂë¡¢ÇÐÆ¬µ½×îÖյĸßËÙ·Ö·¢µÈһϵÁÐʹÃü¡£ÔÚ½ÓÏÂÀ´µÄ²¿·Ö£¬ÎÒÃǽ«ÉîÈë̽ÌÖNginxÔõÑùͨ¹ý¸ü¸ß¼¶µÄÉèÖú͵ÚÈý·½Ä£¿é£¬ÊµÏÖRTMPÖ±²¥¡¢CDN¼ÓËÙÒÔ¼°ÐÔÄܵ÷ÓÅ£¬ÕæÕýÊÍ·ÅNginxÔÚÊÓÆµÁ÷ýÌåÁìÓòµÄËùÓÐDZÄÜ¡£
ÔÚµÚÒ»²¿·Ö£¬ÎÒÃÇÒѾÏàʶÁËNginx×÷Ϊ¾²Ì¬Îļþ·þÎñÆ÷ÔÚHLSºÍDASHÊÓÆµ·Ö·¢ÖеĻù´¡Ó¦Óã¬ÒÔ¼°ÆäÔڸ߲¢·¢´¦Öóͷ£ºÍ±¾Ç®Ð§Òæ·½ÃæµÄÓÅÊÆ¡£NginxÔÚÊÓÆµÁìÓòµÄDZÁ¦Ô¶²»Ö¹ÓÚ´Ë¡£¡°Nginx100ÊÓÆµ¡±´ú±íµÄÊÇÒ»ÖÖ×·Çó¼«ÖµÄÊÓÆµÁ÷ýÌå½â¾ö¼Æ»®£¬ËüÐèÒªº¸Çʵʱֱ²¥¡¢È«ÇòÄÚÈÝ·Ö·¢ºÍϸÄ廯ÐÔÄܵ÷ÓÅ¡£
±¾²¿·Ö½«ÉîÈë̽ÌÖNginxÔÚRTMPÖ±²¥?¡¢CDN¼ÓËÙÒÔ¼°ÐÔÄÜÓÅ»¯µÄ½ø½×ʵ¼ù£¬×ÊÖúÄú¹¹½¨Ò»¸öÔ½·¢Ç¿Ê¢ºÍ¸ßЧµÄÊÓÆµÆ½Ì¨¡£
RTMP£¨Real-TimeMessagingProtocol£©ÊÇAdobe¹«Ë¾¿ª·¢µÄÒ»ÖÖÐÒ飬ÆÕ±éÓ¦ÓÃÓÚÊÓÆµÖ±²¥ÁìÓò£¬Äܹ»ÌṩµÍÑÓ³Ù?µÄʵʱÒôÊÓÆµ´«Êä¡£ËäÈ»HLSºÍDASHÔÚÁ÷ýÌå²¥·ÅÉϱí?ÏÖ¾«²Ê£¬µ«¹ØÓÚ×·Çó¼«ÖµÍÑÓ³ÙµÄÖ±²¥³¡¾°£¬RTMPÈÔÈ»ÊÇÖ÷ÒªµÄ?ÊÖÒÕÑ¡Ôñ¡£
Nginx×Ô¼º²¢²»Ö±½ÓÖ§³ÖRTMPÐÒ飬µ«ÎÒÃÇ¿ÉÒÔͨ¹ý¼ÓÔØnginx-rtmp-moduleµÚÈý·½Ä£¿éÀ´ÊµÏÖǿʢµÄRTMP·þÎñÆ÷¹¦Ð§¡£Õâ¸öÄ£¿éÄܹ»ÈÃNginx³ÉΪһ¸ö¸ßÐÔÄܵÄRTMPýÌå·þÎñÆ÷£¬ÎüÊÕÀ´×ÔOBS£¨OpenBroadcasterSoftware£©µÈÍÆÁ÷¹¤¾ßµÄÖ±²¥Á÷£¬²¢½«Æäת»»ÎªHLS¡¢DASHµÈÁ÷ýÌåÃûÌ㬹©¹ÛÖÚԢĿ¡£
ÏÂÔØÓë±àÒ룺ÄúÐèÒªÏÂÔØNginxµÄÔ´Â룬²¢Í¬Ê±ÏÂÔØnginx-rtmp-moduleµÄÔ´Â롣Ȼºó£¬ÔÚ±àÒëNginxʱ£¬½«nginx-rtmp-module×÷Ϊģ¿éÌí¼Ó½øÈ¥¡£
#ÏÂÔØnginxÔ´Âëwgethttp://nginx.org/download/nginx-1.20.2.tar.gztar-zxvfnginx-1.20.2.tar.gz#ÏÂÔØnginx-rtmp-moduleÔ´Âëgitclonehttps://github.com/arut/nginx-rtmp-module.git#½øÈënginxÔ´ÂëĿ¼²¢±àÒëcdnginx-1.20.2./configure--add-module=/path/to/nginx-rtmp-module--with-http_ssl_module#ÆäËûNginxÉèÖòÎÊý...makesudomakeinstall
£¨ÇëÆ¾Ö¤ÄúµÄÏÖÕæÏàÐε÷½âNginx°æ±¾ºÍÄ£¿é·¾¶£©
ÉèÖÃRTMP·þÎñÆ÷£ºÔÚnginx.confÎļþÖУ¬Ìí¼Órtmp¿éÀ´ÉèÖÃRTMP·þÎñÆ÷¡£
worker_processesauto;events{worker_connections1024;}http{#...֮ǰµÄHTTPÉèÖÃ...includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout65;server{listen80;server_nameyour_domain.com;#...֮ǰµÄHTTPlocationÉèÖÃ...}}rtmp{server{listen1935;#RTMPĬÈ϶˿Úchunk_size4096;applicationlive{liveon;allowpublish127.0.0.1;#ÔÊÐí±¾?µØÍÆÁ÷allowpublishyour_client_ip;#ÔÊÐíÌØ¶¨¿Í»§¶ËÍÆÁ÷denypublishall;allowplayall;#ÔÊÐíËùÓÐÈ˲¥·Å#½«RTMPÁ÷ת»»ÎªHLShlson;hls_path/tmp/hls;#HLSÇÐÆ¬´æ·ÅĿ¼hls_fragment3s;#HLSÇÐÆ¬Ê±³¤hls_playlist_length15s;#²¥·ÅÁÐ±í³¤¶È#¿ÉÑ¡£º×ª»»ÎªDASH(ÐèÒªÌØÊâÉèÖÃ)#dashon;#dash_path/tmp/dash;#¿ÉÑ¡£º×ªÂë(ÐèÒªFFmpegÖ§³Ö£¬ÉèÖýÏÖØ´ó)#execffmpeg-i$full_live_url-c:vlibx264-c:aaac-fflvrtmp://localhost:1935/live/$name;}}}
ÔÚÕâ¸öÉèÖÃÖУ¬applicationliveÖ¸¶¨ÁËÒ»¸öÖ±²¥Ó¦Óã¬liveon¿ªÆôÁËÖ±²¥¹¦Ð§¡£hlsonÖ¸ÁîÊÇÒªº¦£¬Ëü¸æËßRTMPÄ£¿é½«ÎüÊÕµ½µÄRTMPÁ÷ת»»ÎªHLSÃûÌ㬲¢½«ÇÐÆ¬ºÍ²¥·ÅÁбíÉúÑÄÔÚ/tmp/hlsĿ¼Ï¡£È»ºó£¬Äú¿ÉÒÔÔÚHTTP²¿·ÖÉèÖÃÒ»¸ölocation¿éÀ´ÌṩÕâЩHLSÎļþ£¬¾ÍÏñÎÒÃǵÚÒ»²¿·ÖÏÈÈݵÄÄÇÑù¡£
¹ØÓÚÈ«Çò»¯µÄÊÓÆµ·þÎñ£¬¡°Nginx100ÊÓÆµ¡±Ò»¶¨Àë²»¿ªCDN£¨ContentDeliveryNetwork£©µÄ¼Ó³Ö¡£CDNͨ¹ýÔÚÈ«Çò¸÷µØ°²ÅÅ´ó×ڵĻº´æ·þÎñÆ÷£¬½«ÄÚÈÝ»º´æµ½ÀëÓû§×î½üµÄ½Úµã£¬´Ó¶ø´ó·ùËõ¶Ì»á¼ûÑÓ³Ù£¬Ìá¸ß²¥·ÅÁ÷ͨ¶È£¬²¢·Öµ£Ô´·þÎñÆ÷µÄѹÁ¦¡£
Nginx¿ÉÒÔ×÷ΪCDNµÄÔ´Õ¾£¨OriginServer£©£¬Ò²¿ÉÒÔ×÷ΪCDN½ÚµãÉϵĻº´æ?·þÎñÆ÷¡£
Nginx×÷ΪCDNµÄÔ´Õ¾£ºµ±Óû§Í¨¹ýCDN»á¼ûÊÓÆµÊ±£¬CDN½Úµã»áÏòÄúµÄNginxÔ´Õ¾ÇëÇóÄÚÈÝ¡£´Ëʱ£¬NginxµÄÉèÖÃÖØµãÔÚÓÚ¸ßЧµØÏìÓ¦CDN½Úµã£¬²¢¾¡¿ÉÄÜ¿ìµØÌṩÄÚÈÝ¡£
Nginx×÷ΪCDN½Úµã£ºÔÚ×Ô½¨CDN»òʹÓõÚÈý·½CDN·þÎñʱ£¬Nginx¾³£?±»°²ÅÅÔÚCDNµÄ±ß??Ôµ½ÚµãÉÏ£¬×÷Ϊ»º´æ·þÎñÆ÷¡£ÉèÖõÄÒªº¦ÔÚÓÚ£º
¸ßЧµÄ»º´æÕ½ÂÔ£ºÊ¹ÓÃproxy_cacheÄ£¿éÀ´»º´æÀ´×ÔÔ´Õ¾µÄÊÓÆµÎļþºÍ²¥·ÅÁÐ±í¡£»º´æÍ¬²½ÓëʧЧ£ºÈ·±£µ±?Ô´Õ¾ÄÚÈݸüÐÂʱ£¬CDN½ÚµãÉϵĻº´æÒ²ÄÜʵʱʧЧ»ò¸üС£GeoDNS»òAnycast£ºÅäºÏDNSÆÊÎö»òÍøÂç·ÓÉÊÖÒÕ£¬½«Óû§ÇëÇóµ¼Ïò×î½üµÄCDN½Úµã¡£
×ÝÈ»ÓÐÁËǿʢµÄ¹¦Ð§£¬ÐÔÄÜÓÅ»¯ÒÀÈ»ÊÇ¡°Nginx100ÊÓÆµ¡±µÄ±ØÐ޿Σ¬ÒÔÈ·±£ÆäÔÚÖÖÖÖ¸ºÔØÏ¶¼Äܼá³Ö×î¼Ñ״̬¡£
WorkerÀú³ÌºÍÅþÁ¬Êýµ÷ÓÅ£ºÆ¾Ö¤·þÎñÆ÷CPU½¹µãÊýºÍÄÚ´æ¾Þϸ£¬ºÏÀíÉèÖÃworker_processesºÍworker_connections¡£
worker_processes4;#ƾ֤CPU½¹µãÊýµ÷½âevents{worker_connections10240;#ƾ֤ÄÚ´æºÍÔ¤ÆÚ²¢·¢Êýµ÷½â}
TCP/IP²ÎÊýµ÷ÓÅ£ºÔÚLinuxÄں˲ãÃæ£¬µ÷½ânet.core.somaxconn¡¢net.ipv4.tcp_tw_reuseµÈ?²ÎÊý£¬¿ÉÒÔÌáÉýTCPÅþÁ¬µÄ´¦Öóͷ£ÄÜÁ¦ºÍ¸´ÓÃÂÊ¡£
·¢ËÍÎļþÓÅ»¯£ºsendfileon;Ö¸Áî¿ÉÒÔʹÓÃÁ㿽±´ÊÖÒÕ£¬Ìá¸ßÎļþ´«ÊäЧÂÊ¡£
Keep-AliveÉèÖãºkeepalive_timeoutÉèÖúÏÀíµÄ³¤ÅþÁ¬³¬Ê±Ê±¼ä£¬ïÔÌTCPÅþÁ¬½¨ÉèµÄ¿ªÏú¡£
GzipѹËõ£ºËäÈ»ÊÓÆµÎļþ×Ô¼ºÍ¨³£ÒѾÓɱàÂ룬µ«¹ØÓÚ²¥·ÅÁбíµÈÎı¾Îļþ£¬¿ÉÒÔÆôÓÃGzipѹËõÀ´ïÔÌ´«ÊäÁ¿¡£
gzipon;gzip_typestext/plaintext/cssapplication/jsonapplication/javascriptapplication/xmlapplication/xhtml+xmltext/xmlimage/svg+xml;
¿Í»§¶Ë»º´æ¿ØÖÆ£ºÍ¨¹ýadd_headerCache-ControlµÈÖ¸Áָµ¼ä¯ÀÀÆ÷ºÍCDN½Úµã¾ÙÐÐÓÐÓõĻº´æ?£¬ïÔ̲»ÐëÒªµÄ?ÖØ¸´ÇëÇó¡£
¡°Nginx100ÊÓÆµ¡±Ëù´ú±íµÄ£¬ÊÇÒ»ÖÖ¶ÔÊÓÆµÁ÷ýÌåÊÖÒÕ¼«ÖÂ×·ÇóµÄÀíÄî¡£Ëü²»µ«½öÊǽ«NginxÉèÖÃΪһ¸ö»ù´¡?µÄWeb·þÎñÆ÷£¬¶øÊdzä·ÖʹÓÃÆä¸ßÐÔÄÜ¡¢¸ßÀ©Õ¹ÐԺ͸»ºñµÄÄ£¿éÉú̬£¬¹¹½¨³öÎȹ̡¢¸ßЧ¡¢µÍÑÓ³ÙµÄÊÓÆµ·Ö·¢ºÍÖ±²¥½â¾ö¼Æ»®¡£
´ÓHLS/DASHµÄ×Ô˳ӦÁ÷ýÌå·Ö·¢£¬µ½RTMPµÄʵʱֱ²¥£¬ÔÙµ½CDNµÄÈ«Çò¼ÓËÙ£¬Nginx¶¼ÄÜÊÎÑÝÒªº¦½ÇÉ«¡£¶øÒ»Á¬µÄÐÔÄÜÓÅ»¯£¬ÔòÊÇÈ·±£ÕâЩÊÖÒÕÄܹ»ÒÔ¡°100·Ö¡±µÄ?ÌåÏÖ´¥´ïÿһλÓû§µÄ»ùʯ¡£ÕÆÎÕNginxÔÚÊÓÆµÁìÓòµÄÓ¦Óã¬Òâζ×ÅÄúÕÆÎÕÁËÔÚÄ¿½ñÕâ¸öÊÓÆµÎªÍõµÄʱ´ú£¬¹¹½¨×¿Ô½Óû§ÌåÑéµÄ½¹µã¾ºÕùÁ¦¡£
ÎÞÂÛÊÇÄÚÈÝ´´×÷Õß¡¢Æ½Ì¨ÔËÓªÕߣ¬ÕÕ¾ÉÊÖÒÕ¿ª·¢Õߣ¬ÉîÈëÃ÷È·ºÍʵ¼ù¡°Nginx100ÊÓÆµ¡±µÄÀíÄ¶¼½«ÎªÄú·¿ªÍ¨ÍùÎÞÏÞ¿ÉÄܵĴóÃÅ¡£