»Æ½ð³ÇÍøÕ¾

Nginx¸³ÄÜÊÓÆµÁ÷ýÌ壺´ÓÈëÃŵ½ÐÑÄ¿ £¬½âËø¸ßЧ²¥·ÅмÍÔª
ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷ÕߣºÀîè÷ÃÈ2026-03-03 12:31:43
wwwzqhsauikdwjbfkjabfwqr

Nginx¸³ÄÜÊÓÆµÁ÷ýÌ壺»ù´¡Æª

ÔÚÊý×ÖÄÚÈݱ¬Õ¨µÄ?ʱ´ú £¬ÊÓÆµÒÔÆäÖ±¹Û¡¢Éú¶¯µÄÌØÕ÷ £¬Ñ¸ËÙ³ÉΪÐÅÏ¢Èö²¥ºÍÓéÀÖÏûDzµÄÖ÷Á÷ ¡£ÎÞÂÛÊÇÖ±²¥?»¥¶¯ £¬Õվɵ㲥¹ÛÓ° £¬±³ºó¶¼Àë²»¿ªÇ¿Ê¢¶ø¸ßЧµÄÊÓÆµÁ÷ýÌå·þÎñÆ÷ ¡£¶øNginx £¬Õâ¸öÒÔ¸ßÐÔÄÜ¡¢¸ß²¢?·¢Öø³ÆµÄ?Web·þÎñÆ÷ £¬ÔçÒÑÓâÔ½ÁËÆä×î³õ?µÄ¶¨Î» £¬³ÉΪ¹¹½¨ÏÖ´ú»¯ÊÓÆµÁ÷ýÌå½â¾ö¼Æ»®µÄ»ùʯ ¡£

±¾ÎĽ«´øÄú×ß½øNginxµÄÊÓÆµ²¥·ÅÌìÏ £¬´Ó»ù´¡¿´·¨µ½¸ß¼¶¼¼ÇÉ £¬ÖÜÈ«½âËøNginxÔÚÊÓÆµ·Ö·¢ÁìÓòµÄÎÞÏÞ¿ÉÄÜ ¡£

ΪºÎÑ¡ÔñNginxÀ´²¥·ÅÊÓÆµ £¿

ÔÚÌÖÂÛNginxµÄÏêϸӦÓÃ֮ǰ £¬ÎÒÃÇÏÈÀ´Ã÷ȷһϠ£¬ÎªÊ²Ã´ËüÔÚÊÓÆµ²¥·ÅÁìÓòÔÆÔÆÊܽӴý ¡£

¸ßÐÔÄÜÓë¸ß²¢·¢£ºNginxµÄÊÂÎñÇý¶¯¡¢Òì²½·ÇÛÕ±ÕµÄI/OÄ£×Ó £¬Ê¹ÆäÔÚ´¦Öóͷ£º£Á¿²¢·¢ÅþÁ¬Ê±ÌåÏÖ¾«²Ê ¡£Õâ¹ØÓÚÊÓÆµÁ÷ýÌåÖÁ¹ØÖ÷Òª £¬ÓÉÓÚÓû§ÐèÒªÎȹ̡¢Á÷ͨµÄ²¥·ÅÌåÑé £¬×ÝÈ»ÔÚá¯Áëʱ¶Î £¬·þÎñÆ÷Ò²Ó¦ÄÜÔâÊÜס֨´óµÄ?Á÷Á¿Ñ¹Á¦ ¡£ÎÞаÐÔÓë¿ÉÀ©Õ¹ÐÔ£ºNginxÓµÓи»ºñµÄÄ £¿é»¯Éè¼Æ £¬¿ÉÒÔÆ¾Ö¤ÏÖʵÐèÇóÇáËÉÀ©Õ¹¹¦Ð§ ¡£

ÕâΪÊÓÆµÁ÷ýÌåµÄ¶¨ÖÆ»¯ÐèÇóÌṩÁ˼«´óµÄ±ãµ± £¬ÎÞÂÛÊÇÖ§³ÖºÎÖÖÁ÷ýÌåЭÒé £¬ÕÕ¾ÉʵÏÖÖØ´óµÄתÂë¡¢¼øÈ¨Âß¼­ £¬Nginx¶¼ÄÜͨ¹ýºÏÀíµÄÉèÖûòµÚ?Èý·½Ä £¿éÀ´ÊµÏÖ ¡£±¾Ç®Ð§Ò棺Ïà±ÈÓÚһЩÉÌÒµ»¯µÄÁ÷ýÌå·þÎñÆ÷½â¾ö¼Æ»® £¬Nginx×Ô¼ºÊÇ¿ªÔ´Ãâ·ÑµÄ £¬Õâ´ó´ó½µµÍÁËÊÓÆµ·Ö·¢µÄ³É?±¾ ¡£

Æä¸ßЧµÄ×ÊԴʹÓÃÂÊÒ²ÒâζןüµÍµÄ?Ó²¼þͶÈë ¡£³ÉÊìµÄÉú̬ϵͳ£ºNginxÓµÓÐÖØ´óµÄÓû§ÈºÌåºÍ»îÔ¾µÄÉçÇø £¬ÕâÒâζן»ºñµÄÎĵµ¡¢½Ì³ÌÏ¢Õù¾öÎÊÌâµÄ¼Æ»® ¡£Óöµ½ÄÑÌâʱ £¬×ÜÄÜÕÒµ½ÏìÓ¦µÄÖ§³Ö ¡£

NginxÓëÖ÷Á÷ÊÓÆµÁ÷ýÌåЭÒé

ҪʵÏÖÊÓÆµµÄ˳³©²¥·Å £¬Àë²»¿ªÖÖÖÖÁ÷ýÌåЭÒéµÄÖ§³Ö ¡£NginxÄܹ»Í¨¹ý²î±ðµÄÄ £¿éºÍÉèÖà £¬Ö§³Ö¶àÖÖÖ÷Á÷ЭÒ飺

RTMP(Real-TimeMessagingProtocol)£ºRTMPÊÇÒ»ÖÖ»ùÓÚTCPµÄÁ÷ýÌå´«ÊäЭÒé £¬Ö÷ÒªÓÃÓÚÖ±²¥³¡¾° ¡£ËüÄܹ»ÊµÏÖµÍÑÓ³ÙµÄʵʱÒôÊÓÆµ´«Êä £¬ºÜÊÇÊʺÏÓÎÏ·Ö±²¥¡¢ÔÚÏß½ÌÓýµÈ¶ÔʵʱÐÔÒªÇ󼫸ߵÄÓ¦Óà ¡£NginxÉçÇø°æ×Ô¼º²¢²»Ö±½ÓÖ§³ÖRTMPЭÒé £¬µ«Í¨¹ý×°ÖÃnginx-rtmp-moduleÕâ¸öµÚÈý·½Ä £¿é £¬Nginx¾ÍÄÜÒ¡ÉíÒ»±ä £¬³ÉΪǿʢµÄ?RTMP·þÎñÆ÷ £¬³ÐÔØÖ±²¥ÍÆÁ÷ºÍ²¥·Å ¡£

ÍÆÁ÷£ºÖ±²¥Ô´£¨ÈçOBS¡¢FFmpeg£©½«ÒôÊÓÆµÊý¾Ýͨ¹ýRTMPЭÒéÍÆË͵½Nginx·þÎñÆ÷ ¡£À­Á÷£º¹ÛÖڶ˵IJ¥·ÅÆ÷£¨ÈçVLC¡¢JWPlayer£©Í¨¹ýRTMPЭÒé´ÓNginx·þÎñÆ÷À­È¡Ö±²¥Á÷ ¡£

HLS(HTTPLiveStreaming)£ºHLSÊÇÆ»¹û¹«Ë¾ÍƳöµÄÒ»ÖÖ»ùÓÚHTTPµÄÁ÷ýÌå´«?ÊäЭÒé ¡£Ëü½«ÊÓÆµÇзֳÉһϵÁÐСµÄ.tsýÌ寬¶ÏÎļþ £¬²¢Ìṩһ¸ö.m3u8µÄ²¥·ÅÁбíÎļþ ¡£HLSµÄÓÅÊÆÔÚÓÚÆä¼æÈÝÐÔÇ¿ £¬ÏÕЩËùÓеÄ×°±¸ºÍä¯ÀÀÆ÷¶¼Ö§³Ö ¡£

ËüʹÓÃHTTPЭÒé´«Êä £¬Òò´Ë¿ÉÒԺܺõØÊ¹ÓÃÏÖÓеÄCDN£¨ContentDeliveryNetwork£©»ù´¡ÉèÊ© £¬ÊµÏÖÈ«Çò¹æÄ£ÄڵĿìËÙ·Ö·¢ ¡£

·ÖƬ£ºNginx¿ÉÒÔͨ¹ýngx_http_slice_module»òµÚÈý·½Ä £¿é£¨Èçnginx-http-flv-moduleÅäºÏFFmpeg£©½«ÊÓÆµÇзֳÉ.tsÎļþ ¡£²¥·ÅÁбí?£ºÌìÉú.m3u8Îļþ £¬Ö¸ÏòÕâЩ.tsÎļþ ¡£

²¥·Å£º²¥·ÅÆ÷ͨ¹ýHTTPÇëÇó.m3u8Îļþ £¬È»ºó˳ÐòÏÂÔØ.tsÎļþ¾ÙÐв¥·Å ¡£

DASH(DynamicAdaptiveStreamingoverHTTP)£ºDASHÊÇÒ»ÖÖ¿ª·Å±ê×¼µÄ×Ô˳Ӧ±ÈÌØÂÊÁ÷ýÌåЭÒé £¬ÓëHLSÀàËÆ £¬Ò²ÊÇ»ùÓÚHTTP ¡£DASHµÄ½¹µãÍ·ÄÔÊÇÆ¾Ö¤ÍøÂç´ø¿íºÍ×°±¸ÐÔÄÜ £¬¶¯Ì¬µØÎªÓû§Ñ¡Ôñ×îºÏÊʵÄÊÓÆµÂëÂÊ £¬´Ó¶øÊµÏÖÁ÷ͨµÄ²¥·ÅÌåÑé £¬×ÝÈ»ÔÚÍøÂ粨¶¯µÄÇéÐÎÏÂÒ²ÄÜÓÐÓÃ×èÖ¹¿¨¶Ù ¡£

·Ö¶Î£ºÀàËÆÓÚHLS £¬DASHÒ²½«ÊÓÆµÇзֳÉС¶Î ¡£MPD(MediaPresentationDescription)£ºÒ»¸öXMLÎļþ £¬ÐÎòÁËÊÓÆµµÄ¿ÉÓÃÇø·Ö?ÂÊ¡¢±ÈÌØÂÊ¡¢Ê±¼äÐÅÏ¢µÈ ¡£²¥·Å£º²¥·ÅÆ÷ÆÊÎöMPDÎļþ £¬Æ¾Ö¤ÍøÂç״̬¶¯Ì¬Ñ¡ÔñÏÂÔØ²î±ðÖÊÁ¿µÄÊÓÆµÆ¬¶Ï ¡£

´î½¨NginxRTMP·þÎñÆ÷£º³õÌåÑé

ÈÃÎÒÃÇ´Ó×î³£¼ûÒ²ÊÇ×îÓдú±í?ÐÔµÄRTMPÖ±²¥×îÏÈ £¬ÌåÑéNginxµÄÊÓÆµ²¥·ÅÄÜÁ¦ ¡£

Ìõ¼þÌõ¼þ£º

×°ÖÃNginx£ºÈ·±£ÄãµÄ·þÎñÆ÷ÉÏÒÑ×°ÖÃNginx ¡£ÏÂÔØnginx-rtmp-module£ºÄãÐèÒª´ÓGitHubÏÂÔØnginx-rtmp-moduleµÄÔ´Âë ¡£

±àÒë×°Öãº

ÏÂÔØNginxÔ´Â룺´ÓNginx¹ÙÍøÏÂÔØÄãÏëÒªµÄNginx°æ±¾Ô´Âë ¡£ÏÂÔØnginx-rtmp-module£º´ÓÆäGitHub¿ÍÕ»ÏÂÔØ ¡£½âѹ²¢±àÒ룺bashcd/path/to/nginx/source./configure--add-module=/path/to/nginx-rtmp-module--prefix=/usr/local/nginx...(ÆäËûÄãÐèÒªµÄÉèÖÃÑ¡Ïî)makemakeinstall×¢ÖØ£ºÈôÊÇÄãÒѾ­×°ÖÃÁËNginx £¬²¢ÇÒ²»Ï£ÍûÖØÐ±àÒë £¬¿ÉÒÔ˼Á¿Ê¹ÓÃÔ¤±àÒëºÃµÄNginx°ü £¬»òÕß²éÕÒÖ§³Ö¶¯Ì¬¼ÓÔØRTMPÄ £¿éµÄ°æ±¾ ¡£

µ«?ÔÚÏÖʵÉú²úÇéÐÎÖÐ £¬´Ó?Ô´Âë±àÒëͨ³£ÊÇ×î¼ÑÑ¡Ôñ £¬¿ÉÒÔÈ·±£Ä £¿éµÄ¼æÈÝÐÔºÍÎȹÌÐÔ ¡£

ÉèÖÃRTMP·þÎñÆ÷£º

±à¼­NginxµÄÖ÷ÉèÖÃÎļþ(nginx.conf) £¬Ìí¼ÓRTMPÄ £¿éµÄÉèÖãº

worker_processesauto;#ƾ֤CPU½¹µãÊý×Ô¶¯ÉèÖÃevents{worker_connections1024;#ÿ¸öworkerÀú³ÌµÄ?×î´óÅþÁ¬Êý}http{includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout65;server{listen80;server_namelocalhost;location/{roothtml;indexindex.htmlindex.htm;}}}#RTMPÄ £¿éÉèÖÃrtmp{server{listen1935;#RTMPĬÈ϶˿Úchunk_size4096;applicationlive{liveon;#¿ªÆôÖ±²¥Ä£Ê½recordoff;#²»Â¼ÖÆ £¬ÈôÊÇÐèÒªÂ¼ÖÆÖ±²¥¿ÉÒÔÉèΪonallowpublish127.0.0.1;#ÔÊÐíÍâµØÍÆÁ÷denypublishall;#եȡÆäËûIPÍÆÁ÷£¨Æ¾Ö¤ÏÖʵÐèÇóµ÷½â£©allowplayall;#ÔÊÐíËùÓÐIP²¥?·Å}}}

Æô¶¯Nginx£º

sudo/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf

ÍÆÁ÷²âÊÔ£º

ʹÓÃFFmpeg»òOBSµÈÍÆÁ÷¹¤¾ß £¬½«ÊÓÆµÁ÷ÍÆË͵½ÄãµÄNginxRTMP·þÎñÆ÷£º

FFmpegÍÆÁ÷ÏÂÁîʾÀý£ºbashffmpeg-re-iinput.mp4-ccopy-fflvrtmp://your_server_ip/live/stream_keyÆäÖÐinput.mp4ÊÇÄãÒªÍÆÁ÷µÄÊÓÆµÎļþ £¬your_server_ipÊÇÄãµÄNginx·þÎñÆ÷IPµØÖ· £¬stream_keyÊÇÒ»¸ö×Ô½ç˵µÄÁ÷Ãû³Æ £¬ÀýÈçtest_stream ¡£

²¥·Å²âÊÔ£º

ʹÓÃÖ§³ÖRTMPЭÒéµÄ²¥·ÅÆ÷£¨ÈçVLC£© £¬ÔÚ²¥·ÅµØÖ·ÖÐÊäÈërtmp://your_server_ip/live/stream_key¼´¿ÉԢĿֱ²¥ ¡£

ÖÁ´Ë £¬ÎÒÃÇÒѾ­Àֳɴî?½¨ÁËÒ»¸ö»ù´¡µÄNginxRTMPÖ±²¥·þÎñÆ÷ £¬²¢?Íê³ÉÁËÍÆÁ÷ºÍ²¥·ÅµÄÆðÔ´²â?ÊÔ ¡£Õâ½ö½öÊÇNginxÊÓÆµ²¥·ÅÄÜÁ¦µÄ±ùɽһ½Ç £¬ÔÚÏÂÒ»²¿?·Ö £¬ÎÒÃǽ«ÉîÈë̽ÌÖNginxÔÚHLSºÍDASHЭÒéϵÄÓ¦Óà £¬ÒÔ¼°ÔõÑùͨ¹ýÖÖÖÖÓÅ»¯ÊÖ¶Î £¬½øÒ»²½ÌáÉýÊÓÆµ²¥·ÅµÄÐÔÄܺÍÓû§ÌåÑé ¡£

Nginx¸³ÄÜÊÓÆµÁ÷ýÌ壺½ø½×ÓëÓÅ»¯

ÔÚÕÆÎÕÁËNginxRTMPµÄ»ù´¡´î?½¨ºó £¬ÎÒÃǽøÒ»²½ÉîÈë £¬Ì½Ë÷NginxÔÚHLSºÍDASHµÈHTTP-basedÁ÷ýÌåЭÒéÖеÄÓ¦Óà £¬²¢Ñ§Ï°ÔõÑùͨ¹ýһϵÁÐÓÅ»¯Õ½ÂÔ £¬´òÔì¸üÎȹ̡¢¸ü¸ßЧ¡¢¸ü¾ßÓû§ÌåÑéµÄÊÓÆµÁ÷ýÌåÆ½Ì¨ ¡£

NginxʵÏÖHLS/DASHÖ±²¥Óëµã²¥

ÓëRTMP²î±ð £¬HLSºÍDASHʹÓÃHTTPЭÒé¾ÙÐд«Êä £¬ÕâʹµÃNginxµÄ?Ô­ÓÐÓÅÊÆµÃÒÔ³ä·ÖÑéÕ¹ £¬²¢ÇÒÄܹ»ÓëÏÖÓеÄWeb·þÎñÆ÷ºÍCDN»ù´¡ÉèÊ©Î޷켯³É ¡£

1.HLS/DASHÖ±²¥£º

ʵÏÖHLS/DASHÖ±²¥Í¨³£ÐèÒªÒ»¸ö¡°Ã½Ìå·þÎñÆ÷¡±À´ÈÏÕæÊÓÆµµÄתÂë¡¢·ÖƬºÍ´ò°ü ¡£Nginx×Ô¼º²»Ö±½ÓÌṩǿʢµÄתÂ빦Ч £¬µ«Ëü¿ÉÒÔͨ¹ýÓëFFmpegµÈ¹¤¾ßµÄÅäºÏ £¬»òÕß¼¯³ÉרÃŵÄýÌå·þÎñÆ÷Ä £¿é£¨ÈçNginx-Media-Streaming-Module£© £¬À´ÊµÏÖHLS/DASHµÄÖ±²¥ ¡£

ÊÂÇéÁ÷³Ì£º

ÍÆÁ÷£ºÖ±²¥Ô´£¨ÈçOBS£©½«Ô­Ê¼ÊÓÆµÁ÷ÍÆË͵½Nginx ¡£×ªÂëÓë·ÖƬ£¨Òªº¦»·½Ú£©£º¼Æ»®Ò»£ºNginx+FFmpeg ¡£NginxÎüÊÕRTMPÁ÷ £¬È»ºóͨ¹ýexecÖ¸Áî»òngx_http_flv_moduleŲÓÃFFmpeg¶ÔRTMPÁ÷¾ÙÐÐʵʱתÂë¡¢ÇÐÆ¬ £¬²¢ÌìÉúHLS/DASHÃûÌõÄÎļþ£¨.tsË鯬ºÍ.m3u8/.mpdÁÐ±í£© ¡£

¼Æ»®¶þ£ºNginx+ýÌå·þÎñÆ÷ ¡£NginxÎüÊÕRTMPÁ÷ £¬×ª·¢¸ø×¨ÃŵÄýÌå·þÎñÆ÷£¨ÈçSRS,Wowza,Nginx-RTMP-ModuleÅäºÏFFmpeg£© £¬ÓÉýÌå·þÎñÆ÷Íê³ÉתÂëºÍ·ÖƬ £¬È»ºóNginxÔÙ½«ÌìÉúµÄÎļþͨ¹ýHTTP·þÎñÌṩ³öÈ¥ ¡£

HTTP·þÎñ£ºNginx×÷ΪWeb·þÎñÆ÷ £¬ÈÏÕæÌṩ.m3u8/.mpdÎļþÒÔ¼°.tsýÌ寬¶Ï ¡£À­Á÷£º¹ÛÖڶ˵IJ¥·ÅÆ÷ͨ¹ýHTTPÇëÇó.m3u8/.mpdÎļþ £¬È»ºóƾ֤Áбí˳ÐòÏÂÔØ.tsÎļþ¾ÙÐв¥·Å ¡£

NginxÉèÖÃʾÀý(HLS)£º

¼ÙÉèÎÒÃÇʹÓÃFFmpeg½«RTMPÁ÷תΪHLS £¬²¢½«HLSÎļþ´æ´¢ÔÚNginxµÄij¸öĿ¼Ï ¡£

#...(httpÄ £¿éÉèÖÃ)...#¼ÙÉèFFmpegÒÑÉèÖúà £¬½«RTMPÁ÷תΪHLSÎļþµ½/var/www/hls/#²¢ÇÒNginx¼à¿Ø¸ÃĿ¼ÒÔÌṩ·þÎñserver{listen80;server_nameyour_video_domain.com;location/hls{alias/var/www/hls;#HLSÎļþ´æ´¢Ä¿Â¼add_headerCache-Controlno-cache;types{application/vnd.apple.mpegurlm3u8;video/mp2tts;}}#...ÆäËûÉèÖÃ...}#RTMPÄ £¿éÉèÖÃ(ÓÃÓÚÎüÊÕÍÆÁ÷ £¬²¢¿ÉÅäºÏexecŲÓÃFFmpeg)rtmp{server{listen1935;chunk_size4096;applicationlive{liveon;recordoff;allowpublish127.0.0.1;#ÔÊÐíÍÆÁ÷allowplayall;#ÅäºÏFFmpeg½«RTMPתΪHLS(ÕâÊÇÒ»¸ö¼ò»¯µÄʾÒâ £¬ÏÖʵÉèÖûá¸üÖØ´ó)#trigger_play_actionon;#ÅäºÏffmpegʵʱתÂë#hlson;#hls_path/var/www/hls;#HLSÎļþÊä³ö·¾¶#hls_fragment5s;#HLSƬ¶Ïʱ³¤#hls_playlist_length60s;#²¥·ÅÁÐ±í³¤¶È}}}

˵Ã÷£ºÉÏÊöRTMPÉèÖÃÖеÄhlsonµÈÊÇnginx-rtmp-moduleÌṩHLSÖ±²¥µÄ¹¦Ð§ £¬Ëü»áÔÚºǫ́ŲÓÃFFmpeg¾ÙÐÐתÂëºÍÇÐÆ¬ ¡£ÈôÊÇʹÓÃÍⲿFFmpeg¾ç±¾ £¬ÔòÐèÒª¸üϸÄåµÄ?ÉèÖà ¡£

2.HLS/DASHµã²¥£º

µã²¥³¡¾°Ï £¬ÊÓÆµÎļþÒѾ­ÌìÉúÍê±Ï £¬NginxµÄ½ÇÉ«¾Í¼ò»¯Îª¸ßЧµÄHTTPÎļþ·þÎñÆ÷ ¡£

ÊÓÆµ´æ´¢£º½«ÊÓÆµÎļþ£¨Èç.mp4£©ºÍ¶ÔÓ¦µÄHLS/DASHÃûÌÃÎļþ£¨.m3u8/.mpd+.ts/.mp4·ÖƬ£©´æ´¢ÔÚNginx¿É»á¼ûµÄĿ¼Ï ¡£

NginxÉèÖãº

server{listen80;server_nameyour_vod_domain.com;location/vod/{alias/path/to/your/video/files/;#ÊÓÆµÎļþ´æ·ÅĿ¼autoindexon;#¿ÉÑ¡ £¬¿ªÆôĿ¼Áбí £¬Àû±ãµ÷ÊÔ#ΪHLS/DASHÉèÖÃMIMEÀàÐÍtypes{application/vnd.apple.mpegurlm3u8;video/mp2tts;application/dash+xmlmpd;video/mp4mp4;#ÈôÊÇÊÇDASHMp4»òÕßͨË×mp4}#Õë¶ÔHLS/DASHµÄ»º´æÕ½ÂÔlocation~\.(m3u8|mpd)${add_headerCache-Controlno-cache;#²¥·ÅÁÐ±í²»½¨ÒéÇ¿»º´æ}location~\.(ts|mp4)${#ýÌ寬¶Ï¿ÉÒÔ˼Á¿»º´æ £¬Æ¾Ö¤ÏÖÕæÏàÐε÷½âexpires1d;add_headerCache-Controlpublic;}}}

NginxÓÅ»¯ÊÓÆµ²¥·ÅµÄÕ½ÂÔ

ÎÞÂÛÊÇÔÚÖ±²¥Õվɵ㲥³¡¾°Ï £¬NginxµÄÐÔÄܺÍÓû§ÌåÑé¶¼¿ÉÒÔͨ¹ýÒÔÏÂÕ½ÂÔ¾ÙÐдó·ùÌáÉý£º

¿ªÆôHTTP/2»òHTTP/3£º

ÓÅÊÆ£ºHTTP/2ºÍHTTP/3Ö§³Ö¶à·¸´Óã¨Multiplexing£©ºÍÍ·²¿Ñ¹Ëõ£¨HeaderCompression£© £¬Äܹ»ÏÔÖøïÔÌ­¼ÓÔØÊ±¼ä £¬ÓÈÆäÊÇÔÚ¼ÓÔØHLS/DASHµÄ´ó×ÚСÎļþʱ ¡£HTTP/3»¹ÒýÈëÁËQUICЭÒé £¬½øÒ»²½½µµÍÁËÑӳٺͶª°üÓ°Ïì ¡£

ÉèÖãºnginxserver{listen443sslhttp2;#¿ªÆôHTTPSºÍHTTP/2#...SSLÖ¤ÊéÉèÖÃ...}HTTP/3ÐèÒªÌØÁíÍâÉèÖúÍÖ§³Ö £¬Í¨³£ÐèÒªNginx±àÒëʱ¼¯³Éngtcp2»òquicheµÈ¿â ¡£

»º´æÕ½ÂÔÓÅ»¯£º

ä¯ÀÀÆ÷»º´æ£º¹ØÓÚ²»¾­³£±ä?¶¯µÄ¾²Ì¬Îļþ£¨È粿·Öµã²¥µÄýÌ寬¶Ï£© £¬¿ÉÒÔÉèÖúÏÀíµÄexpiresºÍCache-ControlÍ· £¬ÈÃä¯ÀÀÆ÷»º´æÕâЩÎļþ £¬ïÔÌ­ÖØ¸´ÏÂÔØ ¡£CDN»º´æ£º½«Nginx×÷Ϊ»ØÔ´·þÎñÆ÷ £¬½ÓÈëCDN ¡£CDNÄܹ»»º´æÊÓÆµÎļþµ½È«Çò¸÷µØµÄ½Úµã £¬Óû§¿ÉÒÔ´ÓÀë×Ô¼º×î½üµÄ½Úµã»ñÈ¡ÄÚÈÝ £¬¼«´óµØ?½µµÍÑÓ³Ù £¬·Öµ£NginxµÄѹÁ¦ ¡£

NginxµÄÉèÖÃӦȷ±£»ØÔ´ÇëÇóµÄ׼ȷÐÔ £¬²¢ºÏÀíÉèÖÃCache-Control ¡£

GzipѹËõ£º

ÓÅÊÆ£º¶Ô.m3u8ºÍ.mpdµÈÎı¾Îļþ¾ÙÐÐGzipѹËõ £¬¿ÉÒÔ¼õС´«ÊäÌå»ý £¬¼ÓËÙÎļþÏÂÔØËÙÂÊ ¡£ÉèÖãºnginxgzipon;gzip_typestext/plaintext/cssapplication/jsonapplication/javascriptapplication/x-javascripttext/xmlapplication/xmlapplication/xml+rsstext/javascriptimage/svg+xml;gzip_proxiedany;#¶Ô´úÀíµÄÏìÓ¦Ò²¾ÙÐÐѹËõ

TCPNODELAYºÍTCPNOPUSH£º

tcp_nodelayon;½ûÓÃNagleËã·¨ £¬Ê¹µÃСµÄÊý¾Ý°üÄܹ»Á¬Ã¦·¢ËÍ £¬¼õСÑÓ³Ù £¬¶ÔʵʱÐÔÒªÇó¸ßµÄÖ±²¥³¡¾°ÓÈÆäÓÐÒæ ¡£tcp_nopushon;ÔÊÐí·¢ËÍÒ»¸ö´øÓÐÊý¾ÝµÄ×îºóÒ»¸öTCP¶Î £¬Ö®ºóÊÇ´øÓÐEOF±ê¼ÇµÄÊý¾Ý°ü £¬ÕâÑù¿ÉÒÔïÔÌ­ÍøÂç´«ÊäµÄ±¨ÎĶÎÊýÄ¿ £¬Ìá¸ßЧÂÊ ¡£

ÉèÖãºÍ¨³£ÔÚhttp»òserver¿éÖÐÉèÖà ¡£

ÓÅ»¯WorkerÀú³ÌºÍÅþÁ¬Êý£º

worker_processesauto;£ºÈÃNginxƾ֤CPU½¹µãÊý×Ô¶¯µ÷½âÊÂÇéÀú³ÌÊýÄ¿ ¡£worker_connections1024;£ºÆ¾Ö¤·þÎñÆ÷ÄÚ´æºÍÏÖʵ²¢·¢ÐèÇóµ÷½âÿ¸öworkerÀú³ÌµÄ×î´óÅþÁ¬Êý ¡£

ʹÓÃBuffer£º

client_body_buffer_size£ºÉèÖÿͻ§¶ËÇëÇóÌåµÄ»º³åÇø¾Þϸ £¬¶Ô´¦Öóͷ£´óÎļþÉÏ´«»òWebSocketÅþÁ¬ÓÐÓ°Ïì ¡£proxy_buffer_sizeºÍproxy_buffers£ºÈôÊÇNginx×÷Ϊ·´Ïò´úÀí £¬ÐèÒªºÏÀíÉèÖÃÕâЩ²ÎÊý £¬ÒÔÌá¸ßºó¶Ë·þÎñÆ÷µÄÏìÓ¦ËÙÂÊ ¡£

Çå¾²¼Ó¹Ì£º

¼øÈ¨£º¹ØÓÚÖ±²¥»òµã²¥ÄÚÈÝ £¬¿ÉÒÔʵÏÖURLÊðÃû¡¢TokenÈÏÖ¤µÈ»úÖÆ £¬±ÜÃâµÁÁ´ ¡£»á¼û¿ØÖÆ£ºÊ¹ÓÃallowºÍdenyÖ¸ÁîÏÞÖÆÌØ¶¨IP»òÍøÂçµÄ»á¼û ¡£HTTPS£ºÇ¿ÁÒ½¨ÒéʹÓÃHTTPS¼ÓÃÜ´«Êä £¬±£»¤Êý¾ÝÇå¾²ºÍÓû§Òþ˽ ¡£

Nginx×÷ΪÊÓÆµ·Ö·¢CDNµÄ×÷ÓÃ

µ±ÊÓÆµÁ÷Á¿¼¤Ôöʱ £¬µ¥Ì¨Nginx·þÎñÆ÷½«ÄÑÒÔÔâÊÜ ¡£Õâʱ £¬Nginx¿ÉÒÔ×÷ΪCDNµÄÖ÷Òª×é³É²¿·Ö£º

±ßÑØ½Úµã£ºNginx°²ÅÅÔÚCDNµÄ¸÷¸ö±ßÑØ½Úµã £¬»º´æ´ó×ÚµÄÊÓÆµÄÚÈÝ ¡£µ±Óû§ÌᳫÇëÇóʱ £¬ÇëÇó»á·Óɵ½ÀëÓû§×î½üµÄ?±ßÑØ½Úµã £¬´ÓNginx½ÚµãÖ±½Ó»ñÈ¡ÊÓÆµ £¬ÊµÏÖµÍÑÓ³Ù¡¢¸ßËÙÂʵIJ¥·Å ¡£»ØÔ´£ºµ±±ßÑØ½Úµã»º´æÖÐûÓÐÓû§ÐèÒªµÄÊÓÆµÊ± £¬Nginx»áÏòÔ´Õ¾£¨¿ÉÄÜÒ²ÊÇÒ»¸öNginx¼¯Èº»òרÃŵĴ洢·þÎñÆ÷£©Ìᳫ»ØÔ´ÇëÇó £¬»ñÈ¡ÊÓÆµ²¢»º´æµ½±ßÑØ½Úµã £¬È»ºó·µ»Ø¸øÓû§ ¡£

¸ºÔØÆ½ºâ£ºNginxÒ²¿ÉÒÔ°²ÅÅÔÚÔ´Õ¾×÷Ϊ¸ºÔØÆ½ºâÆ÷ £¬Î´À´×ÔCDN±ßÑØ½ÚµãµÄÇëÇó·Ö·¢µ½ºó¶ËµÄ¶à¸öýÌå·þÎñÆ÷»ò´æ´¢·þÎñÆ÷ £¬È·±£Ô´Õ¾µÄÎȹÌÐԺ͸߿ÉÓÃÐÔ ¡£

×ܽá

NginxÒÔÆä׿ԽµÄÐÔÄÜ¡¢ÎÞаµÄÉèÖúÍǿʢµÄÉçÇøÖ§³Ö £¬ÔÚÊÓÆµÁ÷ýÌåÁìÓòÕ¹ÏÖ³öÖØ´óµÄDZÁ¦ ¡£´Ó×î³õµÄRTMPÖ±²¥ £¬µ½HLS¡¢DASHµÄÆÕ±éÓ¦Óà £¬ÔÙµ½×÷ΪCDN½¹µã½Úµã·Ö·¢º£Á¿ÊÓÆµ £¬NginxʼÖÕÊǹ¹½¨¸ßЧ¡¢Îȹ̡¢¿ÉÀ©Õ¹ÊÓÆµ²¥·Å½â¾ö¼Æ»®µÄÀíÏëÑ¡Ôñ ¡£

ͨ¹ýÉîÈëÃ÷È·ÖÖÖÖÁ÷ýÌåЭÒé £¬²¢ÍŽáNginxµÄÖÖÖÖÓÅ»¯Õ½ÂÔ £¬Äú¿ÉÒÔÇáËÉ´òÔì³öÖª×ãÓû§ÐèÇó¡¢Ìṩ¼«Ö¹ÛÓ°ÌåÑéµÄÊÓÆµÆ½Ì¨ ¡£ÎÞÂÛÊÇСÎÒ˽¼Ò¿ª·¢ÕßÕվɴóÐÍÆóÒµ £¬Nginx¶¼ÄܳÉΪÄúÊÓÆµ·Ö·¢Ö®Â·ÉϵĵÃÁ¦ÖúÊÖ £¬ÖúÄú½âËøÊÓÆµ²¥·ÅмÍÔª ¡£

ÔðÈα༭£º Àîè÷ÃÈ
ÉùÃ÷£ºÖ¤È¯Ê±±¨Á¦ÕùÐÅÏ¢ÕæÊµ¡¢×¼È· £¬ÎÄÕÂÌá¼°ÄÚÈݽö¹©²Î¿¼ £¬²»×é³ÉʵÖÊÐÔͶ×ʽ¨Òé £¬¾Ý´Ë²Ù×÷Σº¦×Ôµ£
ÏÂÔØ¡°Ö¤È¯Ê±±¨¡±¹Ù·½APP £¬»ò¹Ø×¢¹Ù·½Î¢ÐŹ«ÖںŠ£¬¼´¿ÉËæÊ±Ïàʶ¹ÉÊж¯Ì¬ £¬¶´²ìÕþ²ßÐÅÏ¢ £¬ÕÆÎղƲú»ú»á ¡£
ÍøÓÑ̸ÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
·¢ËÍ
ÍøÓÑ̸ÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨ £¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞ̸ÂÛ
ΪÄãÍÆ¼ö
³¤?°²Æû³µÖ컪ÈÙÔì·Ã»ªÎªÈÎÕý·Ç£¬³ÆÆä¾ÍÖ§³Ö³¤°²Æû³µ¡¢°¢Î¬ËþÆ·ÅÆµÈÌá³öÕë¶ÔÐÔ¡¢Ö¸µ¼ÐÔÒâ¼û
ÍøÕ¾µØÍ¼