Nginx100%Video£º½âËøÊÓÆµÁ÷ýÌåµÄÎÞÏÞDZÄÜ
ÔÚÊý×ÖÄÚÈݱ¬Õ¨µÄʱ´ú£¬ÊÓÆµÒѾ³ÉΪÐÅÏ¢Èö²¥ºÍÓéÀÖÏûºÄµÄÖ÷Á÷ÐÎʽ¡£ÎÞÂÛÊÇÕðº³ÈËÐĵÄÓ°Ï·´ó?Ƭ£¬ÕÕ¾Éʵʱ¹öÌ̵ÄÐÂÎÅÖ±²¥£¬Òà»òÊǾ«²Ê·×³ÊµÄ¶ÌÊÓÆµ£¬ËüÃǶ¼Àë²»¿ªÇ¿Ê¢µÄÊÓÆµÁ÷ýÌåÊÖÒÕµÄÖ§³Ö¡£¶øÔÚÕâÆ¬ÁÉÀ«µÄÀ¶º£ÖУ¬NginxÒÔÆä׿ԽµÄÐÔÄÜ¡¢ÎÞаÐÔºÍÎȹÌÐÔ£¬³ÉΪÁËÎÞÊýÊÓÆµ·þÎñÌṩÉ̵Ä?Ê×Ñ¡ÀûÆ÷¡£
½ñÌ죬ÎÒÃǾÍÀ´ÉîÈë̽ÌÖ£¬ÔõÑùʹÓÃNginx£¬½«ÄúµÄÊÓÆµÁ÷ýÌåÌåÑéÍÆÏò¡°Nginx100%Video¡±µÄáÛ·å¾³½ç¡£
³õʶNginx£¬´ó¶¼ÈË¿ÉÄܽ«Æä¶¨Î»ÎªÒ»¸ö¸ßЧµÄWeb·þÎñÆ÷£¬ÓÃÓÚ´¦Öóͷ£¾²Ì¬ÎļþºÍ·´Ïò´úÀí¡£NginxµÄ¹¦Ð§Ô¶²»Ö¹ÓÚ´Ë¡£ÒÀ¸½ÆäÊÂÎñÇý¶¯¡¢Òì²½?·ÇÛձյļܹ¹£¬NginxÄܹ»ÇáËÉÓ¦¶Ôº£Á¿²¢·¢ÅþÁ¬£¬Õâ¹ØÓÚÐèҪͬʱ·þÎñ³ÉǧÉÏÍòÉõÖÁÊý°ÙÍòÓû§µÄÊÓÆµÁ÷ýÌå·þÎñÀ´Ëµ£¬¼òÖ±ÊÇÁ¿Éí¶¨ÖÆ¡£
ÊÓÆµÁ÷ýÌå·þÎñ´óÖ¿ɷÖΪÁ½´óÀֱࣺ²¥£¨LiveStreaming£©ºÍµã²¥£¨VideoonDemand,VOD£©¡£NginxÔÚÕâÁ½¸öÁìÓò¶¼Õ¹ÏÖ³öÁËǿʢµÄʵÁ¦¡£
¹ØÓÚʵʱÐÔÒªÇ󼫸ߵÄÖ±²¥³¡¾°£¬RTMP£¨Real-TimeMessagingProtocol£©ÐÒéÊÇÏÖÔÚ×îÆÕ±éʹÓõÄÐÒéÖ®Ò»¡£Nginx×Ô¼º²¢²»Ö±½ÓÔÉúÖ§³ÖRTMP£¬µ«Í¨¹ý×°ÖÃÒ»¸öǿʢµÄµÚÈý·½Ä£¿é¡ª¡ªnginx-rtmp-module£¬Nginx˲¼ä¾ÍÄܱäÉíΪһ¸ö¹¦Ð§Ç¿Ê¢µÄRTMP·þÎñÆ÷¡£
Õâ¸öÄ£¿éÄܹ»¸ßЧµØÎüÊÕÀ´×ÔÍÆÁ÷¶ËµÄ?RTMPÐźţ¬²¢½«Æäת·¢¸øÔ¢Ä¿¶Ë¡£
ÏëÏóһϣ¬Ö÷²¥Í¨¹ýOBSµÈÍÆÁ÷Èí¼þ½«ÊÓÆµÔ´ÍÆË͵½ÄúµÄNginx·þÎñÆ÷£¬¶øÂþÑÜÔÚÌìϸ÷µØµÄ¹ÛÖÚÔòͨ¹ýÖݪֲ¥·ÅÆ÷£¨ÈçVLC¡¢JWPlayerµÈ£©ÅþÁ¬µ½Í³Ò»¸öNginx·þÎñÆ÷£¬Ô¢Ä¿ÊµÊ±»Ãæ¡£nginx-rtmp-moduleÄܹ»ÖÇÄܵش¦Öóͷ£²î±ð¹ÛÖÚµÄÍøÂçÇéÐΣ¬ÓÅ»¯´«ÊäËÙÂÊ£¬È·±£?Ö±²¥Á÷ͨÎÞ¿¨¶Ù¡£
ÄúÉõÖÁ¿ÉÒÔͨ¹ýËüʵÏÖÍÆÁ÷µØÖ·µÄÇå¾²ÑéÖ¤¡¢´øÍÑÆÚÖÆ£¬ÒÔ¼°½«RTMPÁ÷ת»»ÎªHTTP-FLV»òHLS£¬ÒÔ¼æÈݸü¶à²¥·ÅÆ÷ºÍÍøÂçÇéÐΡ£
¹ØÓڵ㲥·þÎñ£¬Nginx¸üÊÇÈçÓãµÃË®¡£ËüÄÜͨ¹ýHTTPÐÒé¸ßЧµØ·Ö·¢ÊÓÆµÎļþ¡£ÎÞÂÛÊǹŰåµÄ?HTTPÏÂÔØ£¬ÕվɸüÏȽøµÄÁ÷ʽ´«ÊäÐÒ飬Nginx¶¼ÄÜʤÈΡ£
HTTP-FLV/MP4£º¹ØÓÚһЩ׷ÇóµÍÑӳٵĵ㲥?ÐèÇó£¬Nginx¿ÉÒÔÖ±½ÓÌṩFLV»òMP4Îļþ£¬²¥·ÅÆ÷¿ÉÒÔ±ßÏÂÔØ±ß²¥·Å£¬´ó´óËõ¶ÌÁËÊ×֡ʱ¼ä¡£HLS(HTTPLiveStreaming)£ºÓÉAppleÌá³ö?µÄHLSÐÒ飬ͨ¹ý½«ÊÓÆµÇÐÆ¬³ÉСµÄTSÎļþ£¬²¢ÌìÉúÒ»¸öM3U8²¥·ÅÁÐ±í£¬Nginx¿ÉÒÔºÜÊǸßЧµØÌṩÕâЩÎļþ¡£
HLSµÄÓÅÊÆÔÚÓÚÆäǿʢµÄ¼æÈÝÐÔ£¨ÏÕЩËùÓÐÏÖ´ú×°±¸¶¼Ö§³Ö£©ºÍ¶ÔÍøÂçת±äµÄ˳ӦÄÜÁ¦£¬×ÝÈ»ÍøÂç²»Îȹ̣¬Ò²ÄÜͨ¹ýµ÷½âÇÐÆ¬Ê±³¤À´¼á³Ö²¥·ÅµÄ?Á÷ͨÐÔ¡£Nginx×÷ΪHTTP·þÎñÆ÷£¬×ÔÈ»ÊʺϷַ¢ÕâЩÇÐÆ¬ºÍÁÐ±í¡£DASH(DynamicAdaptiveStreamingoverHTTP)£º×÷ΪHLSµÄ¹ú¼Ê±ê×¼£¬DASHͬÑù»ùÓÚHTTP£¬Ìṩ×Ô˳Ӧ±ÈÌØÂÊÁ÷¡£
NginxÔڵ㲥³¡¾°ÏµÄǿʢ֮´¦»¹ÔÚÓÚÆäÓÅÒìµÄ»º´æÄÜÁ¦¡£Í¨¹ýÉèÖÃproxy_cache»òfastcgi_cache£¬¿ÉÒÔ½«ÈÈÃÅÊÓÆµÄÚÈÝ»º´æµ½ÄÚ´æ»ò´ÅÅÌ£¬µ±´ó×ÚÓû§ÇëÇóͳһÊÓÆµÊ±£¬Nginx¿ÉÒÔÖ±½Ó´Ó»º´æÖÐÌṩ·þÎñ£¬¼«´óµØ¼õÇáºó¶Ë´æ´¢ºÍ´¦Öóͷ£µÄѹÁ¦£¬²¢ÏÔÖøÌáÉýÏìÓ¦ËÙÂÊ¡£
NginxÖ®ÒÔÊÇÄÜÔÚÊÓÆµÁ÷ýÌåÁìÓòÍÑÓ±¶ø³ö£¬ÓëÆäÓÅÒìµÄÉè¼ÆÀíÄîϢϢÏà¹Ø£º
ÊÂÎñÇý¶¯£¬·ÇÛÕ±ÕI/O£ºÕâÊÇNginx¸ßÐÔÄܵĽ¹µã¡£Ëü²»Ïñ¹Å°åµÄÏß³ÌÄ£×ÓÄÇÑùΪÿ¸öÅþÁ¬½¨ÉèÒ»¸öỊ̈߳¨Õâ»áÏûºÄ´ó×ÚÄÚ´æ?ºÍCPU£©£¬¶øÊǽÓÄÉÒ»¸öÊÂÎñÑ»·À´´¦Öóͷ£ËùÓÐÅþÁ¬¡£µ±Ò»¸öÅþÁ¬ÓÐÊÂÎñ±¬·¢£¨ÈçÊý¾Ý¿É¶Áд£©Ê±£¬Nginx²Å»á´¦Öóͷ£Ëü£¬´Ó¶ø´ó´óÌá¸ßÁË×ÊԴʹÓÃÂÊ£¬Äܹ»ÇáËÉÖ§³Ö³ÉǧÉÏÍòµÄ²¢·¢ÅþÁ¬¡£
ÇáÁ¿¼¶£ºNginxµÄÄÚ´æÕ¼ÓúÜÊǵͣ¬×ÝÈ»ÔÚ×ÊÔ´ÓÐÏ޵ķþÎñÆ÷ÉÏÒ²ÄÜÌåÏÖ¾«²Ê¡£¸ß¿É¿¿ÐÔ£ºNginxµÄ¼Ü¹¹Éè¼ÆÊ¹ÆäºÜÊÇÎȹ̣¬×ÝȻij¸öworkerÀú³ÌÍ߽⣬Ҳ²»»áÓ°Ïìµ½Õû¸ö·þÎñÆ÷µÄÔËÐС£Ëü»¹Ö§³ÖÖ÷´Ó£¨Master-Worker£©Ä£×Ó£¬ÒÔ¼°×Ô¶¯ÖØÆô¹¦Ð§£¬½øÒ»²½ÌáÉýÁË·þÎñµÄ¿ÉÓÃÐÔ¡£
Ä£¿é»¯Éè¼Æ£ºNginxµÄÄ£¿é»¯Éè¼ÆÔÊÐí¿ª·¢Õ߯¾Ö¤ÐèÇóÇáËÉÌí¼Ó»òÒÆ³ý¹¦Ð§¡£³ýÁËÇ°ÃæÌáµ½µÄnginx-rtmp-module£¬ÉÐÓÐÐí¶àÆäËûÄ£¿é¿ÉÒÔÔöÇ¿NginxÔÚÊÓÆµÁ÷ýÌå·½ÃæµÄÄÜÁ¦£¬ÀýÈçÖ§³ÖHTTP/2¡¢WebPµÈ¡£
×°ÖÃNginxÓëRTMPÄ£¿é£¨Ö±²¥£©£ºÄúÐèÒªÏÂÔØNginxÔ´Â룬²¢¼¯³Énginx-rtmp-module¾ÙÐбàÒë×°Öá£×°ÖÃÍê³Éºó£¬ÔÚnginx.confÖÐÌí¼ÓRTMPÄ£¿éµÄÉèÖÿ顣
worker_processesauto;events{worker_connections10240;#ƾ֤·þÎñÆ÷ÐÔÄܵ÷½â}http{#...»ù´¡HTTPÉèÖÃ...includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout65;server{listen80;server_nameyour_domain.com;#...ÆäËûHTTPserverÉèÖÃ...}}#RTMPÉèÖÿértmp{server{listen1935;#RTMPĬÈ϶˿Úchunk_size4096;applicationlive{liveon;recordoff;#ĬÈϲ»Â¼ÖÆ£¬¿É°´Ð迪Æôallowpublish127.0.0.1;#ÔÊÐí±¾»úÍÆÁ÷allowpublishyour_domain.com;#ÔÊÐíÓòÃûÍÆÁ÷allowplayall;#ÔÊÐíËùÓÐÈ˲¥·Å}}}
ÉèÖÃHLS/DASH·Ö·¢£¨µã²¥/Ö±²¥×ªHLS£©£ºRTMPÄ£¿é»¹Ö§³Ö½«Ö±²¥Á÷ת»»ÎªHLSÃûÌã¬Àû±ãHTTP²¥·Å¡£
rtmp{server{listen1935;chunk_size4096;applicationlive{liveon;recordoff;hlson;#¿ªÆôHLShls_path/var/www/hls;#HLSÇÐÆ¬´æ´¢Ä¿Â¼hls_fragment5s;#HLSÇÐÆ¬Ê±³¤hls_playlist_length60s;#HLS²¥·ÅÁбíʱ³¤allowpublish127.0.0.1;allowpublishyour_domain.com;allowplayall;}}}#HTTPserverÉèÖã¬ÓÃÓÚ·Ö·¢M3U8ºÍTSÎļþserver{listen8080;#ʹÓÃÒ»¸ö·Ç±ê×¼¶Ë¿Ú£¬»òÓëHTTP·þÎñÆ÷ºÏ²¢server_nameyour_domain.com;location/hls{alias/var/www/hls;#HLSÇÐÆ¬´æ´¢Ä¿Â¼add_headerCache-Controlno-cache;add_headerAccess-Control-Allow-Origin*;#ÔÊÐí¿çÓò»á¼ûtypes{application/vnd.apple.mpegurlm3u8;video/mp2tts;}}}
ͨ¹ýÒÔÉÏÉèÖã¬Äú±ã´î½¨ÆðÁËÒ»¸ö»ù´¡µÄÊÓÆµÁ÷ýÌå·þÎñÆ÷¡£ÒªÊµÏÖ¡°Nginx100%Video¡±£¬½ö½öÊÇ»ù´¡ÉèÖÃÊÇÔ¶Ô¶²»·óµÄ¡£½ÓÏÂÀ´µÄPart2£¬ÎÒÃǽ«ÉîÈë̽ÌÖNginxÔÚÐÔÄÜÓÅ»¯¡¢¸ß¿ÉÓÃÐÔºÍÄÚÈÝ·Ö·¢ÍøÂ磨CDN£©µÈ·½ÃæµÄ½ø½×Ó¦Óã¬ÖúÄú´òÔìÒ»¸öÄܹ»Ó¦¶Ôº£Á¿Á÷Á¿¡¢Ìṩ¼«ÖÂÓû§ÌåÑéµÄÊÓÆµ·þÎñ¡£
Nginx100%Video£º´ÓÐÔÄܵ÷Óŵ½È«ÍøÁýÕֵı¼ÌÚ
ÔÚPart1ÖУ¬ÎÒÃÇÒѾÀֳɴî?½¨ÁË»ùÓÚNginxµÄÖ±²¥ºÍµã²¥»ù´¡¼Ü¹¹£¬²¢ÆðÔ´ÏàʶÁËNginxÔÚÊÓÆµÁ÷ýÌåÁìÓòµÄǿʢ֮´¦¡£ÒªÕæÕýʵÏÖ¡°Nginx100%Video¡±µÄ³Æºô£¬ÎÒÃÇÐèÒª½«ÑÛ¹âͶÏò¸üÉîÌõÀíµÄÓÅ»¯ÓëÀ©Õ¹¡£Õâ²»µ«½öÊǼòÆÓµØÔËÐÐÒ»¸öNginxʵÀý£¬¶øÊÇÒª½«Æä´òÔì³ÉÒ»¸öÎȹ̡¢¸ßЧ¡¢¾ß±¸È«¾ÖÁýÕÖÄÜÁ¦µÄÊÓÆµ·Ö·¢Æ½Ì¨¡£
ÊÓÆµÁ÷ýÌå¶Ô´ø¿íºÍÑÓ³ÙµÄÒªÇ󼫸ߣ¬Ï¸Î¢µÄÐÔÄÜÆ¿¾±¶¼¿ÉÄܵ¼ÖÂÓû§ÌåÑéµÄ¼±¾çϽµ¡£NginxÌṩÁ˸»ºñµÄÉèÖÃÑ¡ÏîÀ´ÓÅ»¯ÐÔÄÜ£¬ÈÃÄúµÄÊÓÆµ·þÎñÈçË¿°ã˳»¬¡£
¹Å°åµÄHTTP/1.1ÐÒéÔÚ´¦Öóͷ£´ó×Ú²¢·¢ÇëÇóʱ±£´æÒ»Ð©¹ÌÓеÄЧÂÊÎÊÌ⣬ÀýÈç¶ÓÍ·ÛÕ±Õ¡£Nginx¶ÔHTTP/2ÐÒéÌṩÁËÔÉúÖ§³Ö¡£HTTP/2ͨ¹ý¶à·¸´Óã¨Multiplexing£©¡¢Í·²¿?ѹËõ£¨HeaderCompression£©ºÍ·þÎñÆ÷ÍÆËÍ£¨ServerPush£©µÈÌØÕ÷£¬¼«´ó?µØÌá¸ßÁË´«?ÊäЧÂÊ£¬ÓÈÆäÊʺÏÊÓÆµÁ÷µÄ´«Êä¡£
¹ØÓÚ¸üÇ°ÑØµÄQUICÐÒ飨»ùÓÚUDP£¬ÊÇHTTP/3µÄ»ù´¡£©£¬NginxÉçÇøÒ²ÔÚÆð¾¢Ì½Ë÷ºÍ¼¯³É¡£Ò»µ©³ÉÊ죬QUIC½«ÒÀ¸½Æä¸üµÍµÄÅþÁ¬½¨ÉèÑӳٺ͸üºÃµÄ?ÈõÍøÌåÏÖ£¬ÎªÊÓÆµÁ÷ýÌå´øÀ´¸ïÃüÐÔµÄÌáÉý¡£
ËäÈ»ÊÓÆµÎļþ×Ô¼ºÍ¨³£ÒѾÊÇѹËõÃûÌ㬵«HTTPÏìӦͷ¡¢M3U8ÁÐ±í¡¢Ð¡µÄTSÇÐÆ¬µÈÈÔÈ»¿ÉÒÔͨ¹ýGzip¾ÙÐÐѹËõ£¬ïÔ̲»?ÐëÒªµÄ´ø¿íÏûºÄ¡£ÔÚNginxÖпªÆôGzipѹËõ£¬¹ØÓÚÌáÉýÕûÌå´«ÊäЧÂÊÖÁ¹ØÖ÷Òª¡£
gzipon;gzip_varyon;gzip_proxiedany;gzip_comp_level6;gzip_typestext/plaintext/cssapplication/jsonapplication/javascriptapplication/xmltext/xmltext/javascriptimage/svg+xml;
ϸÄ廯µÄ»º´æÕ½ÂÔÊÇÓÅ»¯µÄÖØÖÐÖ®ÖØ¡£NginxµÄproxy_cacheÖ¸ÁîÄܹ»½«ºó¶Ë·þÎñÆ÷£¨ÈçÊÓÆµ´æ´¢·þÎñÆ÷£©µÄ?ÏìÓ¦»º´æµ½ÍâµØ¡£¹ØÓڵ㲥ÊÓÆµ£¬¿ÉÒÔͨ¹ýÉèÖýϳ¤µÄ»º´æÊ±¼ä£»¹ØÓÚÖ±²¥ÌìÉúµÄHLSÇÐÆ¬£¬¿ÉÒÔͨ¹ýhls_pathÖ¸ÁÇÐÆ¬´æ´¢ÔÚNginxÍâµØ£¬²¢Ê¹ÓÃNginx×ÔÉí×÷ΪHTTP·þÎñÆ÷À´·Ö·¢¡£
ºÏÀíÉèÖûº´æ£¬¿ÉÒÔ¼«´óµØÌá¸ßÖÀÖÐÂÊ£¬½«´ó²¿·ÖÁ÷Á¿Ö±½ÓÓÉNginx´¦Öóͷ££¬ÈƹýÌÚ¹óµÄºó¶Ë´æ´¢¡£
ÔÚÏÖÔÚÇ¿µ÷°²?È«ÐÔµÄÍøÂçÇéÐÎÏ£¬HTTPSÏÕЩÊDZêÅä¡£NginxÌṩÁËǿʢ?µÄSSL/TLS¼ÓËÙ¹¦Ð§¡£Í¨¹ýÑ¡Ôñ¸ßЧµÄ¼ÓÃÜÌ×¼þ¡¢ÉèÖÃTLS»á»°»º´æ£¨ssl_session_cache£©ºÍÖØÓã¨ssl_session_timeout£©£¬¿ÉÒÔÏÔÖø½µµÍSSLÎÕÊֵĿªÏú£¬°ü¹ÜÊÓÆµ´«ÊäµÄÇå¾²ÐÔ£¬Í¬Ê±²»ÎþÉüÌ«¶àÐÔÄÜ¡£
worker_processesÖ¸Áî¾öÒéÁËNginxÆô¶¯¼¸¶à¸öÊÂÇéÀú³Ì£¬Í¨³£ÉèÖÃΪCPU½¹µãÊý»òÕßauto¡£worker_connectionsÖ¸ÁîÔòÏÞÖÆÁËÿ¸öÊÂÇéÀú³Ì¿ÉÒÔͬʱ´¦Öóͷ£µÄ×î´óÅþÁ¬Êý¡£Æ¾Ö¤·þÎñÆ÷µÄÓ²¼þÉèÖúÍÔ¤ÆÚµÄÁ÷Á¿£¬¶ÔÕâÁ½¸ö²ÎÊý¾ÙÐÐϸÄåµ÷ÓÅ£¬ÊÇʩչNginx×î´óÐÔÄܵÄÒªº¦¡£
¹ØÓÚÊÓÆµÁ÷ýÌå·þÎñ¶øÑÔ£¬å´»úÒâζ×ÅÓû§Á÷ʧºÍÊÕÈëËðʧ¡£NginxÌṩÁ˶àÖÖ»úÖÆÀ´¹¹½¨¸ß¿ÉÓᢿÉÀ©Õ¹µÄ·þÎñ¡£
µ±µ¥Ì¨Nginx·þÎñÆ÷ÎÞ·¨Öª×ãÁ÷Á¿ÐèÇóʱ£¬¿ÉÒÔͨ¹ý°²ÅŶą̀Nginx·þÎñÆ÷£¬²¢?ʹÓÃÒ»¸öÍⲿµÄ¸ºÔØÆ½ºâÆ÷£¨ÈçLVS¡¢HAProxy£¬»òÕßÁíÒ»²ãNginx£©À´·Ö̯Á÷Á¿¡£Nginx×Ô¼ºÒ²ÌṩÁËǿʢ?µÄ¸ºÔØÆ½ºâ¹¦Ð§£¬¿ÉÒÔ½«ÇëÇó·Ö·¢µ½ºó¶ËµÄ¶à¸öÁ÷ýÌå·þÎñÆ÷»òÊÓÆµ´æ´¢·þÎñÆ÷¡£
upstreamstream_servers{server192.168.1.101:1935;server192.168.1.102:1935;server192.168.1.103:1935;#¿ÉÒÔÆ¾Ö¤ÐèÒªÌí¼Ó¸ü¶àµÄºó¶Ë·þÎñÆ÷#NginxµÄ¸ºÔØÆ½ºâËã·¨°üÀ¨round-robin£¨Ä¬ÈÏ£©¡¢least_conn¡¢ip_hashµÈ}server{listen80;server_nameyour_domain.com;location/{proxy_passhttp://stream_servers;#½«HTTPÇëÇó´úÀíµ½Á÷ýÌå·þÎñÆ÷¼¯Èº#...ÆäËû´úÀíÉèÖÃ...}location/rtmp_proxy{#ÈôÊÇÐèÒªRTMPµÄ¸ºÔØÆ½ºâ£¬¿ÉÒÔ˼Á¿Ê¹ÓÃTCP¸ºÔØÆ½ºâÆ÷#...TCP¸ºÔØÆ½ºâÉèÖÃ...}}
ͨ¹ýupstream¿é£¬Nginx¿ÉÒÔ½«Ö±²¥ÍÆÁ÷»òµã²¥ÇëÇó£¬ÖÇÄܵطÖÅɵ½ºó¶ËµÄ¶à¸ö·þÎñÆ÷£¬ÓÐÓÃ×èÖ¹µ¥µã¹ÊÕÏ¡£
ͨ¹ýÉèÖÃkeepalive_timeoutºÍkeepalive_requests£¬Nginx¿ÉÒÔ¸´ÓÃÒѽ¨ÉèµÄTCPÅþÁ¬£¬ïÔÌÆµÈÔ½¨ÉèºÍ¹Ø±ÕÅþÁ¬´øÀ´µÄ¿ªÏú£¬ÌØÊâ?ÊÇÔÚHTTP/1.0ºÍHTTP/1.1ÇéÐÎÏ£¬ÕâÒ»µãÓÈΪÖ÷Òª¡£
ÔÚ¸ºÔØÆ½ºâÉèÖÃÖУ¬Nginx¿ÉÒÔ°´ÆÚ¼ì²éºó¶Ë·þÎñÆ÷µÄ¿µ½¡×´Ì¬¡£Ò»µ©Ä³¸öºó¶Ë·þÎñÆ÷·ºÆð¹ÊÕÏ£¬Nginx»á½«Æä´Ó¿ÉÓÃÁбíÖÐÒÆ³ý£¬²¢½«Á÷Á¿×ª·¢¸øÆäËû¿µ½¡µÄ·þÎñÆ÷£¬È·±£·þÎñµÄ?Ò»Á¬ÐÔ¡£
¹ØÓÚÈ«Çò¹æÄ£ÄÚµÄÊÓÆµ·þÎñ£¬½«ÄÚÈÝ·Ö·¢µ½ÀëÓû§×î½üµÄ½ÚµãÖÁ¹ØÖ÷Òª£¬Õâ¾ÍÊÇÄÚÈÝ·Ö·¢ÍøÂ磨CDN£©µÄ×÷Óá£Nginx×÷Ϊ¸ßÐÔÄܵÄHTTP·þÎñÆ÷£¬Êǹ¹½¨ºÍ¼¯³ÉCDNµÄÀíÏëÑ¡Ôñ¡£
Äã¿ÉÒÔ½«Nginx°²ÅÅÔÚ¸÷¸öµØÇøµÄ?Êý¾ÝÖÐÐÄ£¬×÷ΪCDNµÄ±ßÑØ½Úµã£¨EdgeServer£©¡£µ±Óû§ÇëÇóÊÓÆµÄÚÈÝʱ£¬DNSÆÊÎö»á½«Óû§µ¼Ïò×î½üµÄ±ßÑØ½Úµã¡£Nginx´Ó±ßÑØ½Úµã¸ßЧµØ½«»º´æµÄ?ÄÚÈÝ»ò´ÓÔ´Õ¾ÀÈ¡µÄ?ÄÚÈÝ·Ö·¢¸øÓû§¡£
µ±±ß??Ôµ½ÚµãûÓлº´æµ½Óû§ËùÐèµÄÊÓÆµÄÚÈÝʱ£¬ÐèÒª´ÓÔ´Õ¾£¨OriginServer£©ÀÈ¡¡£NginxµÄ»ØÔ´ÉèÖã¨proxy_pass£©ÐèÒªÓÅ»¯£¬È·±£»ØÔ´ÇëÇóµÄЧÂÊ¡£ÔÚÔ´Õ¾²à£¬Ò²ÐèÒªÅäºÏNginxµÄ»º´æ»úÖÆ£¬ÒÔïÔÌ»ØÔ´´ÎÊý¡£
´ó´ó¶¼ÇéÐÎÏ£¬Äú»áÑ¡ÔñÓë³ÉÊìµÄµÚÈý·½CDN·þÎñÉ̺Ï×÷¡£Õâʱ£¬NginxµÄ½ÇÉ«¸ü¶àÊÇ×÷ΪԴվµÄÈë¿Ú£¬ÈÏÕæÎüÊÕCDNµÄ»ØÔ´ÇëÇ󣬲¢½«ÊÓÆµÄÚÈݸßЧµØÌṩӦCDN½Úµã¡£Í¨¹ýNginxµÄÎÞаÉèÖ㬿ÉÒÔÇáËÉʵÏÖÓëÖÖÖÖCDNµÄ»ØÔ´ÐÒ飨ÈçHTTP¡¢HTTPS£©ºÍÈÏÖ¤»úÖÆ¶Ô½Ó¡£
Ëæ×ÅWebRTC£¨WebReal-TimeCommunication£©ÊÖÒյijÉÊ죬µÍÑÓ³ÙµÄʵʱ»¥¶¯Ö±²¥³ÉΪ¿ÉÄÜ¡£Nginx¿ÉÒÔͨ¹ý¼¯³Énginx-webrtc-moduleÆ·¼¶Èý·½Ä£¿é£¬ÎªWebRTCÌṩÐÅÁî·þÎñÆ÷¡¢Ã½Ìå·þÎñÆ÷µÄ¹¦Ð§£¬ÓëÏÖÓеÄRTMP/HLSÖ±²¥¼Æ»®Ðγɻ¥²¹?£¬Öª×ã¸üÆÕ±éµÄµÍÑÓ³ÙÖ±²¥ÐèÇó£¬ÀýÈçÔÚÏß½ÌÓý¡¢Ô¶³Ì¾Û»á¡¢»¥¶¯ÓÎÏ·µÈ³¡¾°¡£
´Ó»ù´¡µÄRTMPÖ±²¥µ½ÏȽøµÄWebRTC»¥¶¯£¬´Óº£Á¿µã²¥·Ö·¢µ½?È«ÇòCDN°²ÅÅ£¬NginxÒÔÆä׿ԽµÄÐÔÄÜ¡¢¼«¸ßµÄÎÞаÐÔºÍǿʢµÄÀ©Õ¹ÄÜÁ¦£¬ÏÕЩÁýÕÖÁËÊÓÆµÁ÷ýÌåÁìÓòµÄÿһ¸ö½ÇÂ䡣ͨ¹ýÉîÈëÃ÷È·²¢Ï¸Ä廯ÉèÖÃNginx£¬Äú²»µ«¿ÉÒԴһ¸öÎȹ̡¢¸ßЧµÄÊÓÆµ·þÎñ£¬¸üÄܽâËøÆäÎÞÏÞµÄDZÁ¦£¬ÎªÓû§´øÀ´Ø¨¹ÅδÓеÄÁ÷ͨ¡¢µÍÑÓ³ÙµÄÊÓÆµÌåÑé¡£
¡°Nginx100%Video¡±²»µ«½öÊÇÒ»¸ö¿ÚºÅ£¬¸üÊÇÎÒÃǶԼ«ÖÂÊÓÆµÁ÷ýÌåÌåÑéµÄ²»Ð¸×·Ç󣬶øNginx£¬ÕýÊÇʵÏÖÕâһĿµÄµÄ×îÇ¿»ï°é¡£