Nginx£º²»Ö¹ÓÚWeb·þÎñÆ÷£¬¸üÊÇÁ÷ýÌåʱ´ú?µÄÊÓÆµ²¥?·ÅÀûÆ÷
ÔÚÕâ¸öÐÅÏ¢±¬Õ¨µÄʱ´ú£¬ÊÓÆµÒѾ³É?ΪÈËÃÇ»ñÊØÐÅÏ¢¡¢ÓéÀÖÏûDz¡¢Éç½»»¥¶¯µÄÖ÷Á÷·½·¨¡£´Ó¸ßÇåÓ°Ï·¡¢Ö±²¥?Èüʵ½ÔÚÏ߿γ̡¢¶ÌÊÓÆµ·ÖÏí£¬ÊÓÆµÄÚÈݵÄÏûºÄÐèÇó·ºÆð³ö±¬·¢Ê½ÔöÌí¡£¶øÔÚÕⳡϯ¾í¶øÀ´µÄÊÓÆµºéÁ÷±³ºó£¬Ç¿Ê¢µÄÊÖÒÕÖ§³ÖÖÁ¹ØÖ÷Òª¡£Nginx£¬Õâ¸öÒÔ¸ßÐÔÄÜ¡¢¸ß²¢·¢¡¢µÍ×ÊÔ´ÏûºÄ¶øÖøÃûµÄWeb·þÎñÆ÷£¬ÔçÒÑÓâÔ½ÁËÆä×î³õµÄ¶¨Î»£¬ÔÚÊÓÆµ²¥·ÅÁìÓòÊÎÑÝ×ÅÔ½À´Ô½Ö÷ÒªµÄ½ÇÉ«£¬³ÉΪÎÞÊýÁ÷ýÌå·þÎñµÄǿʢÒýÇæ¡£
NginxÓëÊÓÆµ²¥·ÅµÄ?²»½âÖ®Ôµ£º´ÓHTTPµ½RTMP
NginxÖ®ÒÔÊÇÄÜÔÚÊÓÆµ²¥?·ÅÁìÓò´ó·ÅÒì²Ê£¬ÓëÆäÎÞаµÄ¼Ü¹¹ºÍǿʢµÄÐÒéÖ§³ÖϢϢÏà¹Ø¡£×î³õ£¬NginxÖ÷Ҫͨ¹ýHTTPÐÒéÀ´·Ö·¢ÊÓÆµÎļþ¡£Óû§Í¨¹ýä¯ÀÀÆ÷»á¼û£¬Nginx½«´æ´¢ÔÚ·þÎñÆ÷ÉϵÄÊÓÆµÎļþÒÔÁ÷ʽ´«ÊäµÄ·½·¨·¢Ë͸ø¿Í»§¶Ë¡£ÕâÖÖ·½·¨¼òÆÓÖ±½Ó£¬ÊÊÓÃÓڵ㲥³¡¾°£¬Óû§¿ÉÒÔËæÊ±ËæµØÔ¢Ä¿×Ô¼ºÏ²»¶µÄ?ÊÓÆµ¡£
Ëæ×ÅÁ÷ýÌåÊÖÒÕµÄÒ»Ö±Éú³¤£¬ÓÈÆäÊÇÖ±²¥ÐèÇóµÄÐËÆð£¬µ¥?´¿µÄHTTP´«Êä×îÏÈÏÔ¶³öÆä¾ÖÏÞÐÔ¡£
Ö±²¥³¡¾°¶ÔʵʱÐÔ¡¢µÍÑÓ³ÙÓÐ׿«¸ßµÄÒªÇ󡣹ŰåµÄHTTPÐÒéÔÚ´«ÊäÀú³ÌÖб£´æÒ»¶¨µÄÑÓ³Ù£¬ÄÑÒÔÖª×ãÖ±²¥¶Ô¡°¼´Ê±ÐÔ¡±µÄÐèÇó¡£Õâʱ£¬RTMP£¨Real-TimeMessagingProtocol£©ÐÒéÓ¦Ô˶øÉú£¬²¢Ñ¸ËÙ³ÉΪֱ²¥ÍÆÁ÷ºÍ·Ö·¢µÄÊ×Ñ¡¡£Nginxͨ¹ý×°ÖÃngxrtmpmoduleÄ£¿é£¬ÍêÉÆÖ§³ÖRTMPÐÒé¡£
ÕâÒâζ×Å£¬Nginx²»µ«¿ÉÒÔ×÷ΪHTTP·þÎñÆ÷£¬¸üÄÜÒ¡ÉíÒ»±ä?£¬³ÉΪһ¸ö¹¦Ð§Ç¿Ê¢µÄRTMP·þÎñÆ÷¡£
ÓÐÁËngxrtmpmodule£¬NginxÄܹ»ÎüÊÕÀ´×ÔÖ±²¥Ô´µÄ?RTMPÍÆÁ÷£¬²¢½«Æä¾ÙÐÐתÂë¡¢·Ö·¢¡£ËüÄܹ»´¦Öóͷ£´ó×ڵIJ¢?·¢ÅþÁ¬£¬È·±£Ö±²¥Á÷µÄÎȹ̴«Ê䣬×ÝÈ»ÔÚÓû§Á¿¼¤ÔöµÄÇéÐÎÏ£¬Ò²Äܼá³ÖÁ÷ͨ²»¿¨¶Ù¡£NginxµÄÊÂÎñÇý¶¯¡¢Òì²½·ÇÛձյļܹ¹£¬Ê¹ÆäÔÚ´¦Öóͷ£¸ß²¢·¢µÄRTMPÅþÁ¬Ê±£¬×ÊÔ´Õ¼Óü«µÍ£¬Ð§ÂʾªÈË¡£
Õâ¹ØÓÚÐèÒª³¤Ê±¼äÔËÐС¢³ÐÔØº£Á¿Óû§µÄÖ±²¥Æ½Ì¨¶øÑÔ£¬ÎÞÒÉÊÇÖØ´óµÄÓÅÊÆ¡£
HTTPÁ÷ýÌåµÄáÈÆð£ºHLSÓëDASHµÄNginxÖ®µÀ
Ö»¹ÜRTMPÔÚÖ±²¥ÁìÓòÕ¼ÓÐÖ÷Ҫְ룬µ«Æä¼æÈÝÐԺʹ©Í¸ÐÔ£¨ÓÈÆäÊÇÔÚÄ³Ð©ÍøÂçÇéÐÎÏ£©ÈÔ±£´æÒ»Ð©ÌôÕ½¡£ÎªÁËսʤÕâЩÎÊÌ⣬»ùÓÚHTTPµÄÁ÷ýÌåÊÖÒÕÓ¦Ô˶øÉú£¬ÆäÖÐ×î¾ß´ú±íÐԵļ´ÊÇHLS£¨HTTPLiveStreaming£©ºÍDASH£¨DynamicAdaptiveStreamingoverHTTP£©¡£
ÕâÁ½ÖÖÊÖÒÕ½«ÊÓÆµÎļþÖ§½â³ÉһϵÁÐСƬ¶Ï£¬²¢Í¨¹ýHTTPÐÒé¾ÙÐд«Ê䣬¼«´óµØÌá¸ßÁËÁ÷ýÌåµÄ¿É»á¼ûÐÔºÍ˳ӦÐÔ¡£
HLSÊÇÆ»¹û¹«Ë¾Ìá³öµÄÁ÷ýÌåÊÖÒÕ£¬Ëü½«ÊÓÆµÇÐÆ¬³É.tsÎļþ£¬²¢?ͨ¹ýÒ»¸ö.m3u8Ë÷ÒýÎļþÀ´ÐÎòÕâЩÇÐÆ¬¡£¿Í»§¶ËÏÂÔØ.m3u8Îļþºó£¬±ã¿ÉÒÔ°´Ë³ÐòÏÂÔØ.tsÎļþ²¢²¥·Å¡£HLSµÄ?ÓÅÊÆÔÚÓÚÆäÆÕ±éµÄ×°±¸Ö§³ÖºÍǿʢµÄÍøÂç˳ӦÐÔ£¬ÏÕЩËùÓÐÖ÷Á÷×°±¸ºÍä¯ÀÀÆ÷¶¼Ö§³ÖHLS²¥·Å¡£
DASHÔòÊÇÒ»¸ö¿ª·ÅµÄ±ê×¼£¬ËüÔÊÐí½«ÊÓÆµÖ§½â³É²î±ðÖÊÁ¿¡¢²î±ðÂëÂʵÄÇÐÆ¬£¬²¢?Ìṩһ¸ö.mpd£¨MediaPresentationDescription£©ÎļþÀ´ÐÎòÕâЩÇÐÆ¬¡£¿Í»§¶Ë¿ÉÒÔÆ¾Ö¤×ÔÉíµÄÍøÂç״̬ºÍ×°±¸ÐÔÄÜ£¬¶¯Ì¬µØÑ¡Ôñ×îÊʺϵÄÇÐÆ¬¾ÙÐÐÏÂÔØ²¥·Å£¬´Ó¶øÊµÏÖ×Ô˳ӦÂëÂʲ¥·Å£¬ÓÐÓýâ¾öÍøÂ粨¶¯µ¼ÖµĿ¨¶ÙÎÊÌâ¡£
NginxÔÚÖ§³ÖHLSºÍDASH·½ÃæÍ¬ÑùÌåÏÖ¾«²Ê¡£Í¨¹ýÉèÖÃNginx£¬ÎÒÃÇ¿ÉÒÔÇáËɵؽ«ÊÓÆµÎļþ¾ÙÐÐÇÐÆ¬£¬²¢ÌìÉúÏìÓ¦µÄË÷ÒýÎļþ¡£Nginx×÷ΪHTTP·þÎñÆ÷£¬Äܹ»¸ßЧµØ´¦Öóͷ£´ó×ÚµÄHTTPÇëÇ󣬿ìËٵؽ«HLSµÄ.m3u8ÎļþºÍ.tsÇÐÆ¬£¬»òÕßDASHµÄ.mpdÎļþºÍýÌåÇÐÆ¬£¬·Ö·¢¸ø¿Í»§¶Ë¡£
NginxµÄ»º´æ»úÖÆ»¹¿ÉÒÔ½øÒ»²½ÌáÉý·Ö·¢Ð§ÂÊ£¬ïÔÌÔ´·þÎñÆ÷µÄѹÁ¦¡£
¸ü½øÒ»²½£¬Nginx»¹¿ÉÒÔÍŽángxhttpflv_moduleµÈÄ£¿é£¬ÊµÏÖ¶ÔFLVÃûÌÃÊÓÆµµÄÖ±½ÓÁ÷ʽ´«Êä¡£FLVÊÇÒ»ÖÖºÜÊÇÊ¢ÐеÄÊÓÆµÃûÌã¬ÓÈÆäÔÚFlashʱ´ú¡£ËäÈ»FlashÒÑÖð½¥±»ïÔÌ£¬µ«FLVÃûÌõÄÊÓÆµÄÚÈÝÈÔÈ»ÆÕ±é±£´æ¡£Nginxͨ¹ý¶ÔFLVµÄÖ§³Ö£¬¿ÉÒÔÎÞ·ì¶Ô½Ó¾ÉÓеÄÊÓÆµ×ÊÔ´£¬ÎªÄÚÈÝǨáãºÍÉý¼¶ÌṩÁ˱㵱¡£
NginxÖ®ÒÔÊdzÉΪÊÓÆµ²¥·ÅÁìÓòµÄ¡°½¾×Ó¡±£¬Æä½¹µã¼ÛÖµÌåÏÖÔÚÒÔϼ¸¸ö·½Ã棺
¸ßÐÔÄÜÓë¸ß²¢·¢£ºNginxµÄÊÂÎñÇý¶¯¡¢Òì²½·ÇÛձռܹ¹£¬Ê¹ÆäÄܹ»ÇáËÉÓ¦¶Ôº£Á¿²¢·¢ÅþÁ¬£¬ÎÞÂÛÊÇRTMPÖ±²¥Á÷ÕÕ¾ÉHTTPÁ÷ýÌåÇÐÆ¬£¬¶¼ÄܸßЧ´¦?Àí¡£ÎÞаÐÔÓë¿ÉÀ©Õ¹ÐÔ£ºNginxÓµÓи»ºñµÄÄ£¿éÉú̬£¬Í¨¹ý×°ÖÃngxrtmpmodule¡¢ngxhttpflv_moduleÆ·¼¶Èý·½Ä£¿é£¬¿ÉÒÔÇáËÉÀ©Õ¹Æä¹¦Ð§£¬Öª×ã²î±ðÁ÷ýÌåÐæÅºÍÃûÌõÄÐèÇó¡£
µÍ×ÊÔ´ÏûºÄ£ºÏà±È?ÓÚÆäËû·þÎñÆ÷£¬NginxÔÚ´¦Öóͷ£¸ß²¢·¢ÇëÇóʱ£¬ÄÚ´æºÍCPUÕ¼ÓÃÂʶ¼½ÏµÍ£¬Õâ¹ØÓÚ±¾Ç®¿ØÖƺÍÐÔÄÜÓÅ»¯ÖÁ¹ØÖ÷Òª¡£ÎȹÌÐÔÓë¿É¿¿ÐÔ£ºNginx¾ÓɶàÄêµÄÉú³¤ºÍÆÕ±éµÄÓ¦Óã¬ÒѾ֤ʵÎúÆä׿ԽµÄÎȹÌÐԺͿɿ¿ÐÔ£¬Äܹ»È·±£ÊÓÆµ·þÎñµÄÒ»Á¬¿ÉÓá£
Ò×ÓÚÉèÖÃÓë¹ÜÀí£ºNginxµÄÉèÖÃÎļþ¾«Á·Ã÷Îú£¬Ò×ÓÚÃ÷È·ºÍÐ޸ģ¬ÎªÊÓÆµ·þÎñµÄ¸ßЧ°²ÅźÍÔËάÌṩÁ˱㵱¡£
´Ó¼òÆÓµÄHTTPÊÓÆµµã²¥£¬µ½ÖØ´óµÄRTMPÖ±²¥ÍÆÁ÷£¬ÔÙµ½ÏȽøµÄHLS/DASH×Ô˳ӦÁ÷ýÌ壬NginxÒÀ¸½ÆäǿʢµÄÄÜÁ¦ºÍÎÞаµÄÉèÖã¬ÒѾ³É?Ϊ¹¹½¨¸ßÐÔÄÜ¡¢µÍÑÓ³Ù¡¢¸ß¿É¿¿ÐÔÊÓÆµ²¥·Å½â¾ö¼Æ»®µÄ»ùʯ¡£ËüΪÄÚÈÝ´´×÷Õß¡¢Ö±²¥Æ½Ì¨¡¢ÊÓÆµ·þÎñÌṩÉÌÌṩÁËÒ»¸öǿʢ¶ø¿É¿¿µÄƽ̨£¬ÈÃËûÃÇÄܹ»½«¾«²ÊµÄÊÓÆµÄÚÈÝ£¬Îȹ̡¢Á÷ͨµØ×ª´ï¸øÈ«ÇòÓû§¡£
NginxÊÓÆµ²¥·Å£º´Ó»ù´¡µ½ÐÑÄ¿£¬½âËø¸ßÐÔÄÜÁ÷ýÌå·þÎñµÄÉñÃØ
ÔÚ³ä·ÖÊìϤµ½NginxÔÚÊÓÆµ²¥·ÅÁìÓòµÄǿʢDZÁ¦ºó£¬ÎÒÃÇ×ÔÈ»»áºÃÆæÔõÑù²Å»ª³ä·ÖʹÓÃNginxµÄÄÜÁ¦£¬¹¹½¨¾«²ÊµÄ?ÊÓÆµ·þÎñ¡£Õâ²»?½ö½öÊǼòÆÓµÄÉèÖ㬸üÊÇÒ»¸öÒ»Ö±ÓÅ»¯ºÍ¾«½øµÄÀú³Ì¡£±¾ÎĽ«ÉîÈë̽ÌÖNginxÔÚÊÓÆµ²¥·Å³¡¾°ÏµÄÉèÖÃÒªµã¡¢ÐÔÄÜÓÅ»¯Õ½ÂÔÒÔ¼°Ò»Ð©¸ß¼¶Ó¦Óã¬×ÊÖúÄú´Ó»ù´¡×ßÏòÐÑÄ¿£¬´òÔìÕæÕýµÄ¸ßÐÔÄÜÁ÷ýÌåÆ½Ì¨¡£
Òª´î½¨Ò»¸öRTMPÖ±²¥·þÎñÆ÷£¬½¹µãÔÚÓÚ×°ÖúÍÉèÖÃngxrtmpmoduleÄ£¿é¡£Õâ¸öÄ£¿éÔÊÐíNginxÎüÊÕÀ´×ÔÖ±²¥Ô´£¨ÈçOBS¡¢FFmpegµÈÍÆÁ÷Èí¼þ£©µÄRTMPÍÆÁ÷£¬²¢½«Æä¾ÙÐд¦Öóͷ£ºÍ·Ö·¢¡£
×°ÖÃngxrtmpmodule£ºÍ¨³££¬ngxrtmpmoduleÐèÒª×÷ΪNginxµÄµÚÈý·½Ä£¿é¾ÙÐбàÒë×°Öá£ÄúÐèÒªÏÂÔØNginxµÄÔ´Âë°üºÍngxrtmpmoduleµÄÔ´Âë°ü£¬È»ºóͨ¹ý./configure--add-module=/path/to/ngx_rtmp_moduleÏÂÁÆä±àÒëµ½NginxÖС£
RTMPÉèÖÃÒªµã£ºÔÚNginxµÄÉèÖÃÎļþ£¨Í¨³£ÊÇnginx.conf£©ÖУ¬ÄúÐèÒªÌí¼ÓÒ»¸örtmp¿é¡£Õâ¸ö¿é°üÀ¨ÁËRTMP·þÎñÆ÷µÄ½¹µãÉèÖãº
rtmp{server{listen1935;#RTMPĬÈ϶˿Úchunk_size4096;#¿é¾Þϸ£¬Ó°Ïì´«ÊäЧÂÊapplicationlive{#½ç˵һ¸öÃûΪliveµÄÓ¦ÓÃliveon;#¿ªÆôÖ±²¥Ä£Ê½recordoff;#ͨ³£ÔÚÖ±²¥Öв»ÐèÒªÂ¼ÖÆ£¬¿ÉÉèÖÃΪoffallowpublish127.0.0.1;#ÔÊÐíÍâµØÐû²¼£¬Æ¾Ö¤ÐèÇóÐÞ¸Äallowplayall;#ÔÊÐíËùÓÐÈ˲¥·Å}}}
ÔÚÕâ¸öÉèÖÃÖУ¬applicationlive½ç˵ÁËÒ»¸öÖ±²¥Ó¦Óá£liveon;ÊÇÒªº¦£¬Ëü¸æËßNginxÕâ¸öÓ¦ÓÃÊÇÓÃÀ´×öÖ±²¥µÄ¡£allowpublishºÍallowplayÓÃÓÚ¿ØÖÆÍÆÁ÷ºÍ²¥?·ÅµÄȨÏÞ¡£
»ùÓÚNginxµÄHTTPÁ÷ýÌ壨HLS/DASH£©·þÎñ£ºµã²¥Óë×Ô˳ӦµÄÈÚºÏ
ÔÚNginxÖÐÌṩHLS»òDASH·þÎñ£¬Í¨³£ÐèҪ͎áFFmpegµÈ¹¤¾ß½«ÔʼÊÓÆµÎļþ¾ÙÐÐÇÐÆ¬´¦Öóͷ££¬È»ºóNginxÈÏÕæ½«ÕâЩÇÐÆ¬Îļþͨ¹ýHTTPÐÒé¾ÙÐзַ¢¡£
ÊÓÆµÇÐÆ¬£ºÄú¿ÉÒÔʹÓÃFFmpeg½«ÊÓÆµÎļþÇÐÆ¬³ÉHLS»òDASHÃûÌá£ÀýÈ磬ʹÓÃFFmpegÌìÉúHLSÇÐÆ¬£º
ffmpeg-iinput.mp4-codec:copy-start_number0-hls_time10-hls_list_size0-fhlsoutput.m3u8
ÕâÌõÏÂÁî»á½«input.mp4ÇзֳÉ10ÃëµÄÊÓÆµÆ¬¶Ï£¬²¢?ÌìÉú?output.m3u8Ë÷ÒýÎļþ¡£
NginxÉèÖãºÔÚNginxµÄhttp¿éÖУ¬ÄúÐèÒªÉèÖÃÒ»¸öserver¿éÀ´ÍйÜÕâЩÇÐÆ¬Îļþ¡£
server{listen80;server_nameyour_domain.com;location/hls/{types{application/vnd.apple.mpegurlm3u8;video/mp2tts;}alias/path/to/your/hls/files/;#Ö¸ÏòHLSÇÐÆ¬ÎļþµÄĿ¼add_headerCache-Controlno-cache;add_headerAccess-Control-Allow-Origin*;#ÔÊÐí¿çÓò»á¼û}}
Õâ¶ÎÉèÖøæËßNginx£¬µ±ÊÕµ½/hls/µÄÇëÇóʱ£¬È¥/path/to/your/hls/files/Ŀ¼²éÕÒ¶ÔÓ¦µÄ.m3u8ºÍ.tsÎļþ£¬²¢¾ÙÐзַ¢¡£add_headerAccess-Control-Allow-Origin*;ºÜÊÇÖ÷Òª£¬ËüÔÊÐíÀ´×ÔÈκÎÓòÃûµÄ¿Í»§¶Ë»á¼ûÄúµÄHLS×ÊÔ´£¬Õâ¹ØÓÚWeb²¥·ÅÆ÷À´ËµÊDZز»¿ÉÉٵġ£
WorkerÀú³ÌÓëÅþÁ¬Êýµ÷ÓÅ£ºworker_processes:ÉèÖÃΪCPU½¹µãÊýµÄÕûÊý±¶£¬ÀýÈçworker_processesauto;»òworker_processes4;¡£worker_connections:ÉèÖÃΪÿ¸öworkerÀú³ÌÄܹ»´¦Öóͷ£µÄ×î´óÅþÁ¬Êý£¬Õâ¸öֵͨ³£?ÐèҪƾ֤·þÎñÆ÷ÄÚ´æºÍÔ¤ÆÚµÄ²¢·¢Á¿À´µ÷½â¡£
worker_processes*worker_connections¾ÍÊÇNginxµÄ×ÜÅþÁ¬ÊýÉÏÏÞ¡£TCP/IP²ÎÊýÓÅ»¯£ºÔÚLinuxϵͳÖУ¬ÐèÒªµ÷½ânet.core.somaxconn¡¢net.ipv4.tcp_max_syn_backlog¡¢net.ipv4.tcp_tw_reuse¡¢net.ipv4.tcp_fin_timeoutµÈÄں˲ÎÊý£¬ÒÔÌá¸ßTCPÅþÁ¬µÄ´¦Öóͷ£ÄÜÁ¦ºÍЧÂÊ¡£
»º´æÕ½ÂÔ£ºä¯ÀÀÆ÷»º´æ£ººÏÀíÉèÖÃexpires»òCache-ControlÍ·£¬Èÿͻ§¶Ë£¨ä¯ÀÀÆ÷»ò²¥·ÅÆ÷£©»º´æÊÓÆµÇÐÆ¬£¬ïÔÌÖØ¸´ÇëÇó¡£Nginx»º´æ£ºÊ¹ÓÃproxy_cacheÄ£¿é¿ÉÒÔ»º´æÀ´×Ôºó¶Ë·þÎñÆ÷µÄÏìÓ¦£¬¹ØÓÚ·´Ïò´úÀí³¡?¾°ÏÂÌṩÊÓÆµ·þÎñºÜÊÇÓÐÓá£
Îļþϵͳ»º´æ?£ºÈ·±£ÄúµÄÊÓÆµÎļþ´æ´¢ÔÚËÙÂÊ¿ìµÄ´æ´¢×°±¸ÉÏ£¬²¢Ê¹ÓòÙ×÷ϵͳµÄÎļþϵͳ»º´æ¡£GzipѹËõ£º¹ØÓÚ·ÇÊÓÆµÄÚÈÝ£¨ÈçM3U8¡¢MPDË÷ÒýÎļþ£©£¬¿ÉÒÔ¿ªÆôGzipѹËõÀ´¼õС´«ÊäÌå»ý£¬Ìá¸ß¼ÓÔØËÙÂÊ¡£µ«¹ØÓÚÊÓÆµÁ÷×Ô¼º£¬Í¨³£²»½¨Òé¾ÙÐÐGzipѹËõ£¬ÓÉÓÚÊÓÆµÊý¾Ý×Ô¼ºÒѾÊǸ߶ÈѹËõµÄ¡£
SSL/TLSÓÅ»¯£ºÈôÊÇÄúµÄÊÓÆµ·þÎñʹÓÃHTTPS£¬ÐèÒªÉèÖøßЧµÄSSL/TLSÐæÅºÍ¼ÓÃÜÌ×¼þ£¬²¢Ë¼Á¿Ê¹ÓÃHTTP/2»òHTTP/3À´½øÒ»²½ÌáÉý´«ÊäÐÔÄÜ¡£³¤ÅþÁ¬ÓëKeep-Alive£ººÏÀíÉèÖÃkeepalive_timeout£¬¼á³ÖHTTPÅþÁ¬µÄ?¸´Óã¬ïÔÌTCPÎÕÊÖºÍSSLÎÕÊֵĿªÏú¡£
»á¼û¿ØÖÆÓëÏÞÁ÷£ºÍ¨¹ýlimit_reqÄ£¿éʵÏÖÇëÇóÏÞÁ÷£¬±ÜÃâ¶ñÒâ¹¥»÷»òÓû§ÀÄÓ㬱£?Ö¤·þÎñµÄÎȹÌÐÔ¡£Ê¹ÓÃngx_http_access_module¾ÙÐÐIP°×Ãûµ¥»òºÚÃûµ¥¿ØÖÆ¡£
CDN¼¯³É£º½«Nginx×÷ΪCDN£¨ÄÚÈÝ·Ö·¢ÍøÂ磩µÄ½Úµã£¬Ê¹ÓÃÆäǿʢµÄ·Ö·¢ÄÜÁ¦£¬½«ÊÓÆµÄÚÈÝ»º´æµ½ÀëÓû§¸ü½üµÄ±ßÑØ·þÎñÆ÷£¬´ó´óËõ¶Ì»á¼ûÑÓ³Ù£¬ÌáÉýÓû§ÌåÑé¡£¶àÐÒéÖ§³Ö£º³ýÁËRTMP¡¢HLS¡¢DASH£¬Nginx»¹¿ÉÒÔͨ¹ýÆäËûÄ£¿éÖ§³Ö¸ü¶àÁ÷ýÌåÐÒ飬ÈçSRT£¨SecureReliableTransport£©£¬ÒÔÖª×ã¸üרҵµÄÖ±²¥³¡¾°ÐèÇó¡£
¸ºÔØÆ½ºâ£ºµ±µ¥¸öNginx·þÎñÆ÷ÎÞ·¨Öª×ã¸ß²¢·¢ÐèÇóʱ£¬¿ÉÒÔͨ¹ý¶ą̀Nginx·þÎñÆ÷¾ÙÐиºÔØÆ½ºâ£¬½«Á÷Á¿ÊèÉ¢µ½²î±ðµÄ·þÎñÆ÷ÉÏ£¬Ìá¸ßϵͳµÄÕûÌå¿ÉÓÃÐÔºÍÍÌÍÂÁ¿¡£¶¯Ì¬×ªÂëÓë´ò°ü£ºËäÈ»Nginx×Ô¼º²»Ö±½Ó¾ÙÐÐÊÓÆµ×ªÂ룬µ«¿ÉÒÔÓëFFmpeg¡¢FFmpeg-NVENCµÈתÂë·þÎñ¼¯³É£¬ÊµÏÖÊÓÆµµÄʵʱתÂëºÍ²î±ðÃûÌõĴò°ü£¬ÒÔ˳Ӧ²î±ðÖն˺ÍÍøÂçÇéÐΡ£
Çå¾²¼Ó¹Ì£ºÉèÖÃReferer·ÀµÁÁ´£¬ÏÞÖÆ²»·¨»á¼û¡£Í¨¹ýtoken¼øÈ¨»úÖÆ£¬¶Ô²¥?·ÅÇëÇó¾ÙÐÐÑéÖ¤£¬±ÜÃâδÊÚȨµÄ²¥·Å¡£
NginxÔÚÊÓÆµ²¥·ÅÁìÓòµÄÄÜÁ¦Ô¶²»Ö¹ÓÚ´Ë¡£ËüÊÇÒ»¸ö¸ß¶ÈÎÞаÇÒÐÔÄÜǿʢµÄƽ̨£¬Äܹ»Öª×ã´Ó¼òÆÓµÄµã²¥µ½ÖØ´óµÄ?Ö±²¥Ó¦Óó¡¾°¡£Í¨¹ýÉîÈëÃ÷È·NginxµÄÉèÖÃÔÀí¡¢ÕÆÎÕÐÔÄÜÓÅ»¯¼¼ÇÉ£¬²¢ÍŽáÏÖʵӪҵÐèÇó£¬Äú¿ÉÒÔ¹¹½¨³öÎȹ̡¢¸ßЧ¡¢¿ÉÀ©Õ¹µÄÊÓÆµ·þÎñ£¬ÎªÓû§´øÀ´¼«ÖµĹÛÓ°ÌåÑ飬ÔÚÇ¿ÁÒµÄÊг¡¾ºÕùÖÐÍÑÓ±¶ø³ö¡£
Nginx£¬ÎÞÒÉÊÇÄúÔÚÁ÷ýÌåʱ´úʵÏÖÊÓÆµÃÎÏëµÄ¼áʵºóÔ®¡£