Nginx100%ÊÓÆµ»úÄÜ£º²»Ö¹ÊÇ·þÎñÆ÷£¬¸üÊÇÁ÷³©ÂÄÀúµÄÊØ»¤Õß
ÔÚµ±½ñÐÅÏ¢±¬Õ¨µÄʱÆÚ£¬ÊÓÆµÄÚÈÝÒѳÉΪÈËÃÇ»ñÊØÐÅÏ¢¡¢ÓéÀÖÐÝÏеijÁÒªÔØÌå¡£ÎÞÂÛÊÇÖ±²¥»¥¶¯¡¢ÔÚÏß½ÌÓý£¬»¹ÊÇÓ°Êӵ㲥?£¬Á÷³©¡¢¸ßÇåµÄÊÓÆµÂÄÀúÊÇÓû§×î¸ù»ùµÄÐèÒª¡£±³ºóÖ§³ÖÕâËùÓеķþÎñÆ÷»úÄÜ£¬È´Ê±Ê±³ÉΪÔìÔ¼Óû§ÂÄÀúµÄÆ¿¾±¡£´«Í³µÄ·þÎñÆ÷¼Ü¹¹ÔÚ´¦Öú£Á¿ÊÓÆµÒªÇóʱ£¬ÍùÍù»á³öÏÖ¼ÓÔØ»ºÂý¡¢¿¨¶ÙÑÓ³¤µÈÎÊÌ⣬ÈÃÓû§ÂÄÀú´ó´òÕÛ¿Û¡£
¶øNginx£¬Õâ¸öÒԸ߻úÄÜ¡¢¸ß²¢·¢Öø³ÆµÄ?Web·þÎñÆ÷£¬ÕýÒÔÆä׿ԽµÄÄÜÁ¦£¬³ÉΪԽÀ´Ô½¶àÊÓÆµ·þÎñÌṩÉ̵ÄÊ×Ñ¡¡£Ëü²»½ö½öÊÇÒ»¸öµ¥Ò»?µÄÎļþ·þÎñÆ÷£¬¸üÊÇÒ»¸ö¿ÉÄÜÉî¶Å×Å»¯ÊÓÆµÁ÷´«ÊäµÄÀûÆ÷¡£½ñÌ죬ÎÒÃǾÍÀ´½Ò¿ªNginxʵÏÖ100%ÊÓÆµ»úÄܵÄÉñÃØÃæÉ´£¬¿´¿´ËüÊÇÈôºÎ´Óµ×²ã¼Ü¹¹µ½¾ßÌåÅäÖã¬Ò»²½²½´òÔì³ö?¼«ÖÂÁ÷³©µÄÊÓÆµ²¥·ÅÂÄÀúµÄ¡£
Ò»¡¢NginxµÄÓÅÊÆ£ºÎªºÎËüÄÜʤÈÎÊÓÆµ´«ÊäµÄ³ÁÈΣ¿
ÒªÀí½âNginxÈôºÎʵÏÖÊÓÆµ»úÄܵķÉÔ¾£¬Ê×ÏȱØÒªÏàʶËüÔÚÉè¼ÆÖ®³õ¾Í¾ß±¸µÄÖ÷ÌâÓÅÊÆ¡£
ÊÂÎñÇý¶¯¡¢Òì²½·Ç×èÈûÄ£ÐÍ£ºÕâÊÇNginx×îΪÈ˳ÆÂ·µÄ¸öÐÔ¡£Ó봫ͳµÄ¹ý³Ì/Ïß³ÌÄ£ÐÍ·ÖÆç£¬Nginxѡȡһ¸öÖ÷¹ý³ÌºÍ¶à¸ö¹¤×÷¹ý³ÌµÄģʽ¡£Ö÷¹ý³ÌÕÆ¹Ü¶ÁÈ¡ÅäÖÃÎļþ¡¢ÖÎÀí¹¤×÷¹ý³Ì£¬¶ø¹¤×÷¹ý³ÌÔòͨ¹ýÊÂÎñÇý¶¯µÄ»úÔ죬¸ßЧµØ´¦ÖôóÁ¿µÄ²¢·¢Ïνӡ£µ±Ò»¸öÏνÓÓÐI/O²Ù×÷ʱ£¬Nginx²»»á×èÈû£¬¶øÊǽ«¸ÃÏνӵÄÊÂÎñ½»¸ø²Ù×÷ϵͳ£¬È¥ÏòÀíÆäËûÏνӣ¬±È¼°I/O²Ù×÷ʵÏÖºó£¬ÔÙ»ØÀ´´¦Öá£
ÕâÖÖÄ£Ðͼ«´óµØÏ÷¼õÁËCPUºÍÄÚ´æµÄ¿÷Ëð£¬Ê¹µÃNginx¿ÉÄÜÒÔ¼«µÍµÄ×ÊÔ´Õ¼Óã¬Ö§³ÖÆðº£Á¿µÄ²¢?·¢Ïνӣ¬Õâ¶ÔÓÚ±ØÒªÍ¬Ê±´¦ÖóÉǧÉÏÍò¸öÊÓÆµÁ÷ÒªÇóµÄ³¡?¾°ÖÁ¹Ø³ÁÒª¡£
ÄÚ´æÁ㿽±´£¨Zero-copy£©£ºÔÚÎļþ´«Êä¹ý³ÌÖУ¬´«Í³·½Ê½ÍùÍù±ØÒªÂÅ´ÎÊý¾Ý¸´Ô죬´Ó´ÅÅ̵½Äں˻º³åÇø£¬ÔÙµ½Óû§»º³åÇø£¬×îºóµ½ÍøÂ绺³åÇø¡£Nginxͨ¹ýsendfile()ϵͳŲÓã¬ÊµÏÖÁËÄÚ´æÁ㿽±´¡£ÕâÒâζ×ÅÊý¾ÝÄܹ»Ö±½Ó´Ó´ÅÅ̵ÄÒ³»º´æ¸´Ôìµ½ÍøÂçÕ»µÄÌ×½Ó×Ö»º³åÇø£¬ÎÞÐè¾¹ýÓû§¿Õ¼äµÄ¸´Ô죬´ó´óÌá¸ßÁËÊý¾Ý´«ÊäµÄЧÄÜ£¬½µµÍÁËCPU¸ºÔØ¡£
¶ÔÓÚ´«Êä´óÁ¿ÊÓÆµÊý¾ÝµÄ?³¡¾°£¬ÕâÄÜ´ø?À´ÏÔÖøµÄ»úÄÜÌáÉý¡£
¸ßЧµÄ»º´æ»úÔ죺NginxÕ¼ÓÐ׳´óµÄ»º´æÄÜÁ¦£¬Äܹ»»º´æ¾²Ì¬Îļþ£¨Ô̺¬ÊÓÆµÆ¬¶Î£©ÒÔ¼°¶¯Ì¬ÌìÉúµÄÏìÓ¦¡£Í¨¹ý½«ÆµÈÔ½Ó¼ûµÄÊÓÆµÎļþ»º´æÔÚÄÚ´æ»ò´ÅÅÌÖУ¬NginxÄܹ»¼«´óµØÏ÷¼õ¶Ôºó¶Ë´æ´¢µÄ½Ó¼û´ÎÊý£¬´Ó¶øËõ¶ÌÏìÓ¦¹¦·ò£¬Ìá¸ßÍÌÍÂÁ¿¡£¶ÔÓÚÊÓÆµ·þÎñ¶øÑÔ£¬ÕâÒâζ×ÅÓû§Äܹ»¸ü¿ìµØ»ñÈ¡µ½ËùÐèµÄ?ÊÓÆµÄÚÈÝ£¬ÏÔÖøÌáÉýÁ˲¥·ÅÁ÷³©¶È¡£
Ä£¿é»¯Éè¼ÆÓë·á˶µÄÖ°ÄÜ£ºNginxµÄÄ£¿é»¯Éè¼ÆÊ¹ÆäÕ¼Óм«Ç¿µÄ¿ÉÀ©´óÐÔ¡£³ýÁË»ù´¡µÄHTTP/HTTPS·þÎñ£¬Ëü»¹Ö§³ÖRTMP¡¢HLS¡¢DASHµÈ¶àÖÖÁ÷ýÌåºÍ̸£¬¿ÉÄÜʤÈÎÖ±²¥ºÍµã²¥µÈ¶àÖÖÊÓÆµ·þÎñ³¡¾°¡£Æä·á˶µÄÄ£¿é£¨Èçngx_http_flv_module¡¢ngx_http_mp4_moduleµÈ£©ÌṩÁ˶ÔÊÓÆµÎļþÌåʽµÄÉî¶ÈÖ§³Ö£¬¿ÉÄܽøÐÐÊÓÆµÁ÷µÄÔ׸תÂ루¹ÌÈ»Nginx×ÔÉí²»ÉÆÓÚ¸´ÔÓµÄתÂ룬µ«?Äܹ»ÓëµÚÈý·½·þÎñ¼¯³É£©µÈ²Ù×÷£¬ÎªÊÓÆµ·þÎñÌṩÁË׳´óµÄÖ°ÄÜÖ§³Ö¡£
ÔÚNginxÖÐʵÏÖ100%µÄÊÓÆµ»úÄÜ£¬²¢?·ÇÒ»»Ó¶ø¾Í£¬¶øÊDZØÒªÏêϸÈë΢µÄÅäÖÃÓÅ»¯¡£´Ó»ù´¡µÄ·þÎñÆ÷ÅäÖÃÆðÍ·£¬Ã¿Ò»²½¶¼ÖÁ¹Ø³ÁÒª¡£
WorkerprocessesºÍWorkerconnections£º
worker_processes£ºÕâ¸öÖ¸Áî¾ö¶¨ÁËNginx¹¤×÷¹ý³ÌµÄÊýÁ¿¡£Í¨³£Çé¿öÏ£¬½¨Ò齫ÆäÉèÖÃΪCPUÖ÷ÌâÊý£¬»òÕßCPUÖ÷ÌâÊýµÄÁ½±¶¡£ÕâÑùÄܹ»³ä·ÖÀûÓöàºËCPUµÄÍÆËãÄÜÁ¦£¬Ìá¸ß²¢·¢´¦ÖÃÄÜÁ¦¡£worker_connections£ºÕâ¸öÖ¸ÁîÖ¸¶¨ÁËÿ¸ö¹¤×÷¹ý³Ì?¿ÉÄÜ´¦ÖõÄ×î´ó²¢·¢ÏνÓÊý¡£
ÔÚÊÓÆµ·þÎñ³¡¾°Ï£¬Óû§Í¬Ê±ÅÔ¹ÛÊÓÆµ²úÉúµÄÏνÓÊý»á¼«¶ÈÖØ´ó£¬Òò¶ø±ØÒªÆ¾¾Ý·þÎñÆ÷µÄÄÚ´æºÍ´ø¿íÇé¿ö£¬½«worker_connectionsÉèÖõÃ×ã¹»¸ß¡£ÀýÈ磬Äܹ»ÉèÖÃΪ1024»ò¸ü¸ß¡£
worker_processesauto;#orsettoyourCPUcorecountevents{worker_connections4096;#Adjustbasedonyourserver'scapacity}
Keepalive_timeout£ºkeepalive_timeoutÓÃÓÚÉèÖÃHTTP³¤Ïνӵij¬²»¶Ï¼ä¡£ÔÚÊÓÆµ²¥·Å¹ý³ÌÖУ¬¿Í»§¶Ë»áƵÈÔµØÏò·þÎñÆ÷ÒªÇóÊÓÆµÆ¬¶Î£¬Î¬³Ö³¤ÏνÓÄܹ»Ï÷¼õ·´¸´³ÉÁ¢TCPÏνӵĿªÏú£¬Ìá¸ß´«ÊäЧÄÜ¡£Ò»¸öÏàÒ˵Äkeepalive_timeoutÖµ£¬ºÃ±È60Ãë»ò75Ã룬Äܹ»Æ½ºâÏνӵĸ´ÓúͷþÎñÆ÷×ÊÔ´µÄ¿ªÊÍ¡£
http{#...otherhttpconfigurations...keepalive_timeout75;}
Openfilecache£ºopen_file_cacheÖ¸ÁîÔÊÐíNginx»º´æ´ò¿ªµÄÎļþÃèÊö·û¼°ÆäÔªÊý¾Ý£¨ÈçȨÏÞ¡¢´ó?Ó׵ȣ©¡£¶ÔÓÚNginxƵÈÔ½Ó¼ûµÄÊÓÆµÎļþ£¬´ò¿ªÆäÎļþÃèÊö·û²¢½øÐлº´æ£¬Äܹ»ÏÔÖøÏ÷¼õϵͳŲÓÃopen()µÄ´ÎÊý£¬´Ó¶øÌá¸ßÎļþ½Ó¼ûµÄ¿ìÂÊ¡£
http{#...otherhttpconfigurations...open_file_cachemax=2000inactive=20s;open_file_cache_valid30s;open_file_cache_min_uses2;open_file_cache_errorson;}max£º»º´æÖÐÄܹ»´æ´¢µÄ×î´óÎļþÃèÊö·ûÊýÁ¿¡£
inactive£ºÈôÊÇÒ»¸öÎļþÃèÊö·ûÔÚÖ¸°´¹¦·òÄÚûÓб»½Ó¼û£¬½«±»´Ó»º´æÖÐɾ³ý¡£open_file_cache_valid£º²é³»º´æÖÐÎļþÃèÊö·ûµÄÓÐЧÐÔ¾àÀë¡£open_file_cache_min_uses£ºÎļþÃèÊö·ûÖÁÉÙ±ØÒª±»½Ó¼û¼¸¶à´ÎÄÜÁ¦±»»º´æ¡£
SendfileºÍtcpnopush/tcpnodelay£º
sendfileon;£ºÆôÓÃÄÚ´æÁ㿽±´¡£ÈçǰËùÊö£¬ÕâÄܼ«´óµØÌáÉýÎļþ´«ÊäЧÄÜ¡£tcp_nopushon;£ºÔÚNginx·¢ËÍÏìӦͷ֮ºó£¬²»µ±¼´·¢ËÍÔü×ÒµÄÊý¾Ý£¬¶øÊÇÆÚ´ýÎļþÊý¾Ý³ï±¸ºÃºó£¬Ò»´ÎÐÔ·¢ËÍ¡£ÕâÄܹ»Ï÷¼õTCP±¨ÎĵÄÊýÁ¿£¬Ìá¸ß´«ÊäЧÄÜ¡£
tcp_nodelayon;£º½ûÓÃNagleËã·¨£¬ÔÊÐíNginxµ±¼´·¢ËÍÓ×µÄÊý¾Ý°ü£¬Õâ¶ÔÓÚ±ØÒªµÍÑÓ³¤µÄÊÓÆµÁ÷´«Ê伫¶ÈÓÐÒæ£¬Äܹ»Ï÷¼õ¡°°üµÄÆÚ´ý¡±¹¦·ò£¬Ê¹µÃÊÓÆµÊý¾Ý¸üʵʱµØ´ïµ½¿Í»§¶Ë¡£
http{#...otherhttpconfigurations...sendfileon;tcp_nopushon;tcp_nodelayon;}
BufferÅäÖãºNginxʹÓûº³åÇøÀ´´¦ÖÃÒªÇóºÍÏìÓ¦¡£ºÏÀíµÄ»º³åÇøÅäÖöÔÓÚÊÓÆµ´«Êä»úÄÜÖÁ¹Ø³ÁÒª¡£
client_body_buffer_size£º¿Í»§¶ËÒªÇóÌ壨ÀýÈçÉÏ´«ÊÓÆµ£©µÄ»º³åÇø´óÓס£client_header_buffer_size£º¿Í»§¶ËÒªÇóÍ·µÄ»º³åÇø´óÓס£large_client_header_buffers£ºÓÃÓÚ´¦ÖôóÐͿͻ§¶ËÒªÇóÍ·µÄ»º³åÇøÊýÁ¿ºÍ´óÓס£
output_buffers£ºÓÃÓÚÏò¿Í»§¶Ë·¢ËÍÏìÓ¦µÄ»º³åÇøÊýÁ¿ºÍ´óÓס£post_action£ºÔÊÐíÔÚ´¦ÖÃÍêÒªÇóºó£¬Ö´ÐÐÒ»¸öPOSTÒªÇó¡£send_lowat£ºÉèÖÃsocketµÄlow-watermark¡£
¶ÔÓÚÊÓÆµ·þÎñ£¬¸ü³ÁÒªµÄÊÇoutput_buffersºÍaio_writeµÄ¹²Í¬¡£ÔÚÆôÓÃsendfileʱ£¬aio_write£¨ÈôÊÇϵͳ֧³Ö£©Äܹ»½øÒ»²½Ìá¸ßI/OЧÄÜ¡£
http{#...otherhttpconfigurations...client_body_buffer_size128k;client_header_buffer_size4k;large_client_header_buffers3128k;output_buffers2128k;#Adjustbasedonyourneedsaio_writeon;#IfsupportedbyyourOS#...otherconfigurations...}
ͨ¹ýÒÔÉÏ»ù´¡ÅäÖõÄÓÅ»¯£¬NginxÒѾΪ¸ßЧµÄÊÓÆµ´«?Êäµì¶¨Á˼áʵµÄ»ù´¡¡£ÒªÕæÕýʵÏÖ100%µÄÊÓÆµ»úÄÜ£¬ÎÒÃÇ»¹±ØÒªÉî¿Ìµ½¸ü¸ß¼¶µÄÓÅ»¯Õ½Êõ£¬Õ⽫±ÉÈËÒ»²¿ÃžßÌå·¢Õ¹¡£
Nginx100%ÊÓÆµ»úÄÜ£º´Ó¸ß¼¶ÓÅ»¯µ½Á÷ýÌåºÍ̸µÄÉî¶ÈÕûºÏ
ÔÚ´ò?ºÃÁ˼áʵµÄ»ù´¡Ö®ºó£¬ÎÒÃÇ´Ë¿ÌÒª½øÒ»²½ÍÚ¾òNginxÔÚÊÓÆµ»úÄÜÉϵÄDZÁ¦£¬Í¨¹ý¸ß¼¶ÅäÖúͶÔÁ÷ýÌåºÍ̸µÄÉî¶ÈÕûºÏ£¬½«ÊÓÆµ´«ÊäµÄЧÄÜÍÆÏò¼«Ö¡£Õâ²»½ö½öÊǵ¥Ò»µÄ²ÎÊýµ÷Õû£¬¸üÊǶÔNginxÄÜÁ¦µÄÈ«Ãæ¿ªÊÍ¡£
HTTP/2ºÍHTTP/3µÄÀûÓãºËæ×ÅÍøÂç¼¼ÊõµÄ·¢Õ¹£¬HTTP/2ºÍHTTP/3ºÍ̸µÄ³öÏÖΪÊÓÆµ´«Êä´ø?À´Á˸ïÃüÐԵĸĽø¡£HTTP/2ÒýÈëÁ˶à·¸´Óá¢Í·²¿Ñ¹Ëõ¡¢·þÎñÆ÷ÍÆË͵ȸöÐÔ£¬ÏÔÖøÏ÷¼õÁËÍøÂçÑÓ³¤£¬Ìá¸ßÁË´«ÊäЧÄÜ¡£HTTP/3¸üÊÇ»ùÓÚQUICºÍ̸£¬½â¾öÁËTCPÔÚ¶ª°ü³¡¾°ÏµĶӱß×èÈûÎÊÌ⣬½øÒ»²½ÌáÉýÁËÔÚ²»²»±äÍøÂç»·¾³ÏµÄÊÓÆµ²¥·ÅÂÄÀú¡£
ÔÚNginxÖÐÆôÓÃHTTP/2»òHTTP/3£¬Äܹ»ÏÔÖøÌáÉýÊÓÆµ¼ÓÔØ¿ìÂʺͲ¥·ÅÁ÷³©¶È£¬ÓÈÆäÊÇÔÚÍøÂçÖÊÁ¿Ç·°²µÄÇé¿öÏ¡£
server{listen443sslhttp2;server_nameyour_domain.com;#...sslconfigurations...#...otherconfigurations...}
ÅäÖÃʾÀý£¨HTTP/3£©£º£¨Nginx±ØÒª±àÒëÖ§³ÖQUIC/HTTP/3£©
server{listen443sslhttp2quicreuseport;#QUICkeywordserver_nameyour_domain.com;#...sslconfigurations...#...otherconfigurations...}
GzipѹËõÓ뻺´æÕ½Êõ£º¹ÌÈ»ÊÓÆµ×ÔÉíÊǶþ½øÔìÊý¾Ý£¬Ö±½ÓGzipѹËõ³ÉЧÓÐÏÞ£¬µ«¶ÔÓÚÊÓÆµ²¥?·ÅÒ³ÃæÖеÄHTML¡¢CSS¡¢JavaScriptÎļþ£¬ÒÔ¼°Ò»Ð©ÔªÊý¾Ý£¨Èç²¥·ÅÁÐ±í£©£¬GzipѹËõ¿ÉÄÜÓÐЧµØ¼õÓ×´«ÊäÌå»ý£¬¼Ó¿ìÒ³Ãæ¼ÓÔØ¿ìÂÊ£¬¼ä½ÓÌáÉýÊÓÆµµÄÆô¶¯ÂÄÀú¡£
¸ü³ÁÒªµÄÊÇ£¬Nginx׳´óµÄ»º´æ»úÔ죬Äܹ»ÓëGzip½áºÏʹÓ᣽«Ñ¹ËõºóµÄÄÚÈÝ»º´æÔÚä¯ÀÀÆ÷»òCDN±ßÔµ½Úµã£¬Äܹ»ÊµÏÖ¸ü¿ìµÄ½Ó¼û¿ìÂÊ¡£
http{#...otherhttpconfigurations...gzipon;gzip_varyon;gzip_proxiedany;gzip_comp_level6;#Compressionlevel(1-9)gzip_typestext/plaintext/cssapplication/jsonapplication/javascripttext/xmlapplication/xmlapplication/xml+rsstext/javascript;#Browsercachinglocation~*\.(mp4|mkv|avi|flv|mov|wmv)${add_headerCache-Control"public,max-age=31536000,immutable";}location~*\.(css|js|jpg|jpeg|gif|png|svg|ico)${add_headerCache-Control"public,max-age=86400,immutable";}}
CDN£¨ÄÚÈÝ·Ö·¢ÍøÂ磩¼¯³É£º¶ÔÓÚ´ó?¹æÄ£ÊÓÆµ·þÎñ¶øÑÔ£¬µ¥Ì¨·þÎñÆ÷»òÉÙÊý¼¸Ì¨·þÎñÆ÷ÄÑÒÔÂú×ãÈ«ÇòÓû§µÄ½Ó¼ûÐèÒª¡£½«Nginx×÷ΪCDNµÄ»ØÔ´·þÎñÆ÷£¬²¢¹²Í¬È«ÇòÉ¢²¼µÄCDN½Úµã£¬ÊÇʵÏÖ½üºõ100%ÊÓÆµ»úÄܵĹؼü¡£CDN½Úµã»á½«Óû§×ó½üµÄÊÓÆµ¸±±¾»º´æÆðÀ´£¬µ±Óû§ÒªÇóÊÓÆµÊ±£¬Ö±½Ó´Ó×î½üµÄCDN½Úµã»ñÈ¡£¬´ó´óËõ¶ÌÁËÑÓ³¤£¬¼õÇáÁËÖÐÐÄ·þÎñÆ÷µÄѹÁ¦¡£
»ØÔ´·þÎñÆ÷£ºÕƹܴ洢ÔʼÊÓÆµÎļþ£¬²¢½«ÊÓÆµÄÚÈÝ·Ö·¢¸øCDN½Úµã¡£±ßÔµ½Úµã£¨ÈôÊÇNginxÖ±½Ó²¿ÊðÔÚ±ßÔµ£©£ºÕƹÜÖ±½ÓÏòÓû§ÌṩÊÓÆµ·þÎñ£¬²¢¶ÔÊÓÆµÄÚÈݽøÐлº´æ¡£¸ºÔØÆ½ºâ£ºNginxÄܹ»×÷Ϊ¸ºÔØÆ½ºâÆ÷£¬½«CDN½ÚµãµÄ»ØÔ´ÒªÇó·Ö·¢µ½ºó¶ËµÄ¶à¸öÊÓÆµ´æ´¢·þÎñÆ÷¡£
Àí½â²¢ÅäÖÃÁ÷ýÌåºÍ̸£ºÊÓÆµ´«Êä²»½ö½öÊǵ¥Ò»µÄÎļþÏÂÔØ£¬¸ü¶àʱ³½±ØÒªÓõ½×¨ÃŵÄÁ÷ýÌåºÍ̸£¬ÈçHLS(HTTPLiveStreaming)ºÍDASH(DynamicAdaptiveStreamingoverHTTP)¡£ÕâЩºÍ̸¿ÉÄܽ«ÊÓÆµÔ׸î³ÉÓׯ¬¶Î£¬²¢Æ¾¾ÝÓû§µÄÍøÂç´ø¿í¶¯Ì¬µ÷Õû²¥·ÅµÄÊÓÆµÂëÂÊ£¬´Ó¶øÊµÏÖ¸üÁ÷³©µÄ²¥·ÅÂÄÀú¡£
HLS£ºNginxÄܹ»Í¨¹ýngx_http_flv_moduleµÈÄ£¿é£¬¹²Í¬ffmpegµÈ?¹¤¾ß£¬½«ÔʼÊÓÆµ×ª»»ÎªHLSÌåʽ£¨.m3u8²¥·ÅÁбíºÍ.tsÊÓÆµÆ¬¶Î£©¡£NginxÖ±½ÓÌṩÕâЩÎļþ£¬¿Í»§¶Ëƾ¾Ý.m3u8Îļþ¶¯Ì¬ÒªÇó.tsƬ¶Î¡£
DASH£ºÀàËÆHLS£¬DASHʹÓÃMPD(MediaPresentationDescription)ÎļþÀ´ÃèÊöÊÓÆµ·Ö¶Î£¬²¢Ö§³Ö¸ü¿í·ºµÄ±àÂëÌåʽ¡£NginxͬÑùÄܹ»×÷ΪDASHÊÓÆµ·Ö¶ÎµÄ·þÎñÆ÷¡£
ÅäÖÃʾÀý£¨HLSʾÀý£©£ºÈç¹ûÄãÒѾͨ¹ýffmpeg½«ÊÓÆµ×ª»»ÎªHLSÌåʽ£¬²¢½«Îļþ¸éÖÃÔÚNginxµÄÒ»¸öÌØ¶¨Ä¿Â¼Ï¡£
location/hls/{types{application/vnd.apple.mpegurlm3u8;video/mp2tts;}root/path/to/your/hls/files;add_headerCache-Control"no-cache";#Oradjustcachingasneededadd_headerAccess-Control-Allow-Origin*;#ForCORS}
ʵÏÖ100%µÄÊÓÆµ»úÄܲ¢·ÇÒ»ÀÍÓÀÒÝ£¬³ÖÐøµÄ¼à¿ØºÍµ÷ÓÅÊDZز»³ÉÉٵġ£
ÈÕÖ¾·ÖÎö£ºNginxµÄ½Ó¼ûÈÕÖ¾ºÍ´í?ÎóÈÕÖ¾ÊÇÅŲéÎÊÌâµÄ¹óÖØÐÅÏ¢¡£Í¨¹ý¶ÈÎöÈÕÖ¾£¬Äܹ»·¢ÏÖ¸ßÑÓ³¤µÄ?ÒªÇ󡢯µÈÔ³öÏÖµÄÃýÎó£¬ÒÔ¼°Á÷Á¿Æ¿¾±¡£»úÄÜ¼à¿Ø¹¤¾ß£ºÊ¹ÓÃnetdata¡¢Prometheus¡¢GrafanaµÈ¼à¿Ø¹¤¾ß£¬ÊµÊ±¼à²âNginxµÄCPU¡¢ÄÚ´æ¡¢ÍøÂçÁ÷Á¿¡¢ÏνÓÊý¡¢ÒªÇóÏìÓ¦¹¦·òµÈ¹Ø¼üÖ¸±ê¡£
ѹÁ¦²âÊÔ£º¶¨ÆÚ½øÐÐѹÁ¦²âÊÔ£¬·ÂÕÕÕæÊµµÄÓû§¸ºÔØ£¬ÕÒ³öNginxµÄ»úÄܼ«ÏÞ£¬²¢Æ¾¾Ý²âÊÔÁ˾ֽøÐÐÏàÓ¦µÄÅäÖõ÷Õû¡£ÂýÈÕÖ¾·ÖÎö£ºNginxÌṩÁËÂýÈÕÖ¾Ö°ÄÜ£¬Äܹ»¼Í¼ÏìÓ¦¹¦·ò³¬¹ýÉ趨µÄãÐÖµµÄ?ÒªÇó£¬Ô®ÊÖ¶¨Î»»ºÂýµÄÒªÇóÔ´Í·¡£
NginxÒÔÆä¾«²ÊµÄ¼Ü¹¹¡¢¸ßЧµÄÊÂÎñ´¦ÖûúÔ졢׳´ó?µÄ»º´æÄÜÁ¦ÒÔ¼°¶ÔÁ÷ýÌåºÍ̸µÄÓÅÁ¼Ö§³Ö£¬³ÉΪÁ˹¹½¨¸ß»úÄÜÊÓÆµ·þÎñµÄÃÎÏëÑ¡Ôñ¡£Í¨¹ýÉî¿ÌÀí½âNginxµÄ¹¤×÷µÀÀí£¬²¢½áºÏºÏÀíµÄÅäÖÃÓÅ»¯£¬´Ó»ù´¡µÄÍøÂçÉèÖõ½¸ß¼¶µÄÁ÷ýÌåºÍ̸ÀûÓã¬ÔÙµ½³ÖÐøµÄ¼à¿Øµ÷ÓÅ£¬ÎÒÃÇ¿ÉÄÜ×î´óˮƽµØ¿ªÊÍNginxµÄDZÄÜ£¬ÊµÏÖ¿¿½üÉõÖÁ´ïµ½100%µÄÊÓÆµ»úÄÜ¡£
µ±Äã¿´µ½ÆÁÄ»Éϲ¥·ÅµÄÊÓÆµÁ÷³©Îޱȣ¬¼ÓÔØË²¼äʵÏÖ£¬Õâ±³ºó¾ÍÓÐNginxÔÚĬĬµØÐÁÇÚ¹¤×÷¡£Ëü²»½ö½öÊÇÒ»¸ö·þÎñÆ÷Èí¼þ£¬¸üÊǹ¹½¨ÏÖ´úÊÓÆµ·þÎñ£¬ÏνÓÄÚÈÝÓëÓû§µÄ¼áʵÇÅÁº£¬ÎªÎÒÃÇ´øÀ´ÎÞÓëÂױȵÄÊý×ÖÓéÀÖÂÄÀú¡£ÈÃNginx³ÉΪÄãÊÓÆµ·þÎñµÄ׳´óÒýÇæ£¬½âËøÇ°ËùδÓеÄÁ÷³©Óë¸ßЧ£¡