Nginx100%ÊÓÆµÐÔÄÜ£º²»Ö¹ÊÇ·þÎñÆ÷£¬¸üÊÇÁ÷ͨÌåÑéµÄÊØ»¤Õß
ÔÚµ±½ñÐÅÏ¢±¬Õ¨µÄʱ´ú£¬ÊÓÆµÄÚÈÝÒѳÉ?ΪÈËÃÇ»ñÊØÐÅÏ¢¡¢ÓéÀÖÐÝÏеÄÖ÷ÒªÔØÌå¡£ÎÞÂÛÊÇÖ±²¥»¥¶¯¡¢ÔÚÏß½ÌÓý£¬ÕÕ¾ÉÓ°Êӵ㲥£¬Á÷ͨ¡¢¸ßÇåµÄÊÓÆµÌåÑéÊÇÓû§×î»ù±¾µÄÐèÇó¡£±³ºóÖ§³ÖÕâÒ»ÇеķþÎñÆ÷ÐÔÄÜ£¬È´¾³£³ÉÎªÖÆÔ¼Óû§ÌåÑéµÄÆ¿¾±¡£¹Å°åµÄ·þÎñÆ÷¼Ü¹¹ÔÚ´¦?Àíº£Á¿ÊÓÆµÇëÇóʱ£¬ÍùÍù»á·ºÆð¼ÓÔØ»ºÂý¡¢¿¨¶ÙÑÓ³ÙµÈÎÊÌ⣬ÈÃÓû§ÌåÑé´ó´òÕÛ¿Û¡£
¶øNginx£¬Õâ¸öÒÔ¸ßÐÔÄÜ¡¢¸ß²¢·¢Öø³ÆµÄWeb·þÎñÆ÷£¬ÕýÒÔÆä׿ԽµÄÄÜÁ¦£¬³ÉΪԽÀ´Ô½¶àÊÓÆµ·þÎñÌṩÉ̵ÄÊ×Ñ¡¡£Ëü²»µ«½öÊÇÒ»¸ö¼òÆÓµÄÎļþ·þÎñÆ÷£¬¸üÊÇÒ»¸öÄܹ»Éî¶ÈÓÅ»¯ÊÓÆµÈö²¥ÊäµÄÀûÆ÷¡£½ñÌ죬ÎÒÃǾÍÀ´½Ò¿ªNginxʵÏÖ100%ÊÓÆµÐÔÄܵÄÉñÃØÃæÉ´£¬¿´¿´ËüÊÇÔõÑù´Óµ×²ã¼Ü¹¹µ½ÏêϸÉèÖã¬Ò»²½²½´òÔì³ö¼«ÖÂÁ÷ͨµÄÊÓÆµ²¥·ÅÌåÑéµÄ¡£
Ò»¡¢NginxµÄÓÅÊÆ£ºÎªºÎËüÄÜʤÈÎÊÓÆµ´«ÊäµÄÖØÈΣ¿
ÒªÃ÷È·NginxÔõÑùʵÏÖÊÓÆµÐÔÄܵı¼ÌÚ£¬Ê×ÏÈÐèÒªÏàʶËüÔÚÉè¼ÆÖ®³õ¾Í¾ß±¸µÄ½¹µãÓÅÊÆ¡£
ÊÂÎñÇý¶¯¡¢Òì²½·ÇÛÕ±ÕÄ£×Ó£ºÕâÊÇNginx×îΪÈ˸èË̵Ä?ÌØÕ÷¡£Óë¹Å°åµÄÀú³Ì/Ïß³ÌÄ£×Ó²î±ð£¬Nginx½ÓÄÉÒ»¸öÖ÷Àú³ÌºÍ¶à¸öÊÂÇéÀú³ÌµÄģʽ¡£Ö÷Àú³ÌÈÏÕæ¶ÁÈ¡ÉèÖÃÎļþ¡¢¹ÜÀíÊÂÇéÀú³Ì£¬¶øÊÂÇéÀú³ÌÔòͨ¹ýÊÂÎñÇý¶¯µÄ»úÖÆ£¬¸ßЧµØ´¦Öóͷ£´ó×ڵIJ¢·¢ÅþÁ¬¡£µ±Ò»¸öÅþÁ¬ÓÐ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%µÄÊÓÆµÐÔÄÜ£¬²¢·ÇÒ»õí¶ø¾Í£¬¶øÊÇÐèÒªÏ꾡Èë΢µÄ?ÉèÖÃÓÅ»¯¡£´Ó»ù´¡?µÄ·þÎñÆ÷ÉèÖÃ×îÏÈ£¬Ã¿Ò»²½¶¼ÖÁ¹ØÖ÷Òª¡£
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³¤ÅþÁ¬µÄ³¬Ê±Ê±¼ä¡£ÔÚÊÓÆµ²¥·ÅÀú³Ì?ÖУ¬¿Í»§¶Ë»áƵÈÔµØÏò·þÎñÆ÷ÇëÇóÊÓÆµÆ¬¶Ï£¬¼á³Ö³¤ÅþÁ¬¿ÉÒÔïÔÌÖØ¸´½¨Éè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³ÉΪÄãÊÓÆµ·þÎñµÄǿʢÒýÇæ£¬½âËøØ¨¹ÅδÓеÄÁ÷ͨÓë¸ßЧ£¡