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ÍÆÁ÷£¬²¢½«Æä½øÐÐתÂë¡¢·Ö·¢¡£Ëü¿ÉÄÜ´¦ÖôóÁ¿µÄ²¢·¢Ïνӣ¬È·±£Ö±²¥Á÷µÄ²»±ä´«Ê䣬¼´±ãÔÚÓû§Á¿¼¤ÔöµÄ?Çé¿öÏ£¬Ò²ÄÜά³ÖÁ÷³©²»¿¨¶Ù¡£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Ö®ËùÒÔ³ÉΪÊÓÆµ²¥·ÅÁìÓòµÄ¡°³è¶ù¡±£¬ÆäÖ÷Ìâ¼ÛÖµÌå´Ë¿ÌÒÔϼ¸¸ö·½Ã棺
¸ß»úÄÜÓë¸ß²¢·¢£º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£¬ÎÞÒÉÊÇÄúÔÚÁ÷ýÌåʱÆÚʵÏÖÊÓÆµÍýÏëµÄ¼áʵºóÔ®¡£