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¡±µÄ³ÆºÅ£¬ÎÒÃDZØÒª½«ÑÛ¹âͶÏò¸üÉîµµ´ÎµÄÓÅ»¯ÓëÀ©´ó¡£Õâ²»½ö½öÊǵ¥Ò»µØÔËÐÐÒ»¸ö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Ö¸ÁîÔòÏÞÔìÁËÿ¸ö¹¤×÷¹ý³ÌÄܹ»Í¬Ê±´¦ÖõÄ×î´óÏνÓÊý¡£Æ¾¾Ý·þÎñÆ÷µÄÓ²¼þÅäÖúÍÔ¤ÆÚµÄ?Á÷Á¿£¬¶ÔÕâÁ½¸ö²ÎÊý½øÐо«Ãܵ÷ÓÅ£¬ÊDzûÑï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{#ÈôÊDZØÒª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£©¼¼ÊõµÄ³ÉÊ죬µÍÑÓ³¤µÄʵʱ»¥¶¯Ö±²¥³ÉΪ¿ÉÄÜ¡£NginxÄܹ»Í¨¹ý¼¯³Énginx-webrtc-moduleµÈµÚÈý·½Ä£¿é£¬ÎªWebRTCÌṩÐÅÁî·þÎñÆ÷¡¢Ã½Ìå·þÎñÆ÷µÄÖ°ÄÜ£¬ÓëÏÖÓеÄRTMP/HLSÖ±²¥¹æ»®Ðγɻ¥²¹£¬Âú×ã¸ü¿í·ºµÄµÍÑÓ³¤Ö±²¥ÐèÒª£¬ÀýÈçÔÚÏß½ÌÓý¡¢Ô¶³Ì»áÒé¡¢»¥¶¯ÓÎÏ·µÈ³¡¾°¡£
´Ó»ù´¡µÄRTMPÖ±²¥µ½ÏȽøµÄWebRTC»¥¶¯£¬´Óº£Á¿µã²¥·Ö·¢µ½?È«ÇòCDN²¿Êð£¬NginxÒÔÆä׿ԽµÄ»úÄÜ¡¢¼«¸ßµÄ½Ã½ÝÐÔºÍ׳´óµÄ?À©´óÄÜÁ¦£¬ÏÕЩ¸²¸ÇÁËÊÓÆµÁ÷ýÌåÁìÓòµÄÿһ¸ö½ÇÂ䡣ͨ¹ýÉî¿ÌÀí½â²¢¾«ÃÜ»¯ÅäÖÃNginx£¬Äú²»½öÄܹ»´î½¨Ò»¸ö²»±ä¡¢¸ßЧµÄÊÓÆµ·þÎñ£¬¸üÄܽâËøÆäÎÞÏÞµÄDZÁ¦£¬ÎªÓû§´øÀ´Ç°ËùδÓеÄÁ÷³©¡¢µÍÑÓ³¤µÄÊÓÆµÂÄÀú¡£
¡°Nginx100%Video¡±²»½ö½öÊÇÒ»¸ö±êÓ¸üÊÇÎÒÃǶԼ«ÖÂÊÓÆµÁ÷ýÌåÂÄÀúµÄ²»Ð¸×êÓª£¬¶øNginx£¬ÕýÊÇʵÏÖÕâÒ»Ö¸±êµÄ×îǿͬ°é?¡£