Nginx¼Ü¹¹ÏµÄÊÓÆµ²¥·Å£ºÐÔÄÜÓëÎÞаÐÔµÄÍêÉÆÈÚºÏ
ÔÚÊý×ÖÓéÀÖÈÕÒæÆÕ¼°µÄ½ñÌ죬ÊÓÆµÄÚÈÝÒѳÉΪÈËÃÇÉúÑÄÖв»¿É»òȱµÄÒ»²¿·Ö¡£ÎÞÂÛÊÇÔÚÏß½ÌÓý¡¢ÓéÀÖÖ±²¥Õվɵ㲥?·þÎñ£¬Á÷ͨ¸ßÇåµÄÊÓÆµ²¥·ÅÌåÑéÊÇÓ®µÃÓû§µÄÒªº¦¡£¶øNginx£¬Õâ¸öÒÔ¸ßÐÔÄÜ¡¢¸ß²¢·¢Öø³ÆµÄWeb·þÎñÆ÷£¬ÔçÒѲ»µ«½öÖª×ãÓÚ¾²Ì¬ÎļþµÄ´«Ê䣬ËüÔÚÊÓÆµÁ÷ýÌåÁìÓòÒ²Õ¹ÏÖ³öÁËǿʢµÄʵÁ¦£¬³ÉΪ´î½¨×¨ÒµÊÓÆµ²¥·Åƽ̨µÄÊ×Ñ¡ÀûÆ÷¡£
NginxµÄ½¹µãÓÅÊÆÔÚÓÚÆäÊÂÎñÇý¶¯¡¢Òì²½·ÇÛÕ±ÕµÄÍøÂçI/OÄ£×Ó¡£ÕâÒâζ×ÅËüÄܹ»ÒÔ¼«µÍµÄ×ÊÔ´ÏûºÄ´¦Öóͷ£º£Á¿²¢·¢ÅþÁ¬£¬Õâ¹ØÓÚÐèҪͬʱ·þÎñ´ó×ÚÓû§µÄ?ÊÓÆµÁ÷ýÌåÓ¦ÓÃÀ´ËµÖÁ¹ØÖ÷Òª¡£¹Å°åµÄÛÕ±ÕʽI/OÄ£×ÓÔÚ´¦Öóͷ£ÊÓÆµÁ÷ÕâÖÖ³¤Ê±¼ä¡¢´óÁ÷Á¿µÄÅþÁ¬Ê±£¬ÈÝÒ×Ôì³É×ÊÔ´ÆÌÕźÍÐÔÄÜÆ¿¾±£¬¶øNginxµÄÉè¼ÆÔòÍêÉÆ¹æ±ÜÁËÕâÒ»ÎÊÌâ¡£
NginxÄ£¿é»¯µÄ¼Ü¹¹Ò²ÎªÆäÔÚÊÓÆµ²¥?·ÅÁìÓòµÄÓ¦ÓÃÌṩÁ˼«´óµÄÎÞаÐÔ¡£Í¨¹ý¼ÓÔØ²î±ðµÄÄ£¿é£¬Nginx¿ÉÒÔÖ§³Ö¶àÖÖÁ÷ýÌåÐÒ飬²¢ÊµÏÖ¸»ºñµÄ¹¦Ð§¡£ÕâʹµÃ¿ª·¢Õß¿ÉÒÔÆ¾Ö¤ÏêϸÐèÇ󣬶¨ÖÆ»¯µØ?¹¹½¨ÊÓÆµ²¥·Å½â¾ö¼Æ»®£¬¶øÎÞÐèÊÜÏÞÓÚ¼òµ¥µÄÊÖÒÕÕ»¡£
ҪʹÓÃNginx¾ÙÐÐÊÓÆµ²¥·Å£¬Ê×ÏÈÐèҪȷ±£NginxÒѾװÖò¢¾ß±¸ÁËÐëÒªµÄÄ£¿é¡£¹ØÓÚ³£¼ûµÄÊÓÆµÁ÷ýÌåÐÒ飬Nginxͨ³£ÐèҪװÖÃngx_http_flv_module(ÓÃÓÚ²¥·ÅFLVÃûÌõÄÊÓÆµ)ºÍngx_http_mp4_module(ÓÃÓÚ´¦Öóͷ£MP4ÃûÌõÄ?ÊÓÆµ)¡£
¸ü½øÒ»²½£¬ÈôÒªÖ§³ÖHLS(HTTPLiveStreaming)ºÍDASH(DynamicAdaptiveStreamingoverHTTP)µÈÖ÷Á÷µÄ?×Ô˳Ӧ±È?ÌØÂÊÁ÷ýÌåÐÒ飬»¹ÐèÒªÌØÁíÍâµÚÈý·½Ä£¿é£¬ÀýÈçnginx-vod-module»ònginx-rtmp-module¡£
ÔÚnginx.confÉèÖÃÎļþÖУ¬ÎÒÃÇ¿ÉÒÔΪÊÓÆµ²¥?·Å³¡¾°¾ÙÐÐרÃŵÄÉèÖá£ÀýÈ磬½¨ÉèÒ»¸ölocation¿éÀ´´¦Öóͷ£ÊÓÆµÎļþµÄÇëÇó£º
http{#...ÆäËûÉèÖÃ...server{listen80;server_nameexample.com;location/videos/{alias/path/to/your/video/files/;#Ö¸¶¨ÊÓÆµÎļþ´æ·ÅĿ¼autoindexon;#¿ÉÑ¡£¬ÓÃÓÚÀû±ãä¯ÀÀÊÓÆµÁбíadd_header'Access-Control-Allow-Origin''*';#ÔÊÐí¿çÓò»á¼û#Õë¶ÔÊÓÆµÎļþµÄһЩÓÅ»¯ÉèÖÃsendfileon;tcp_nopushon;tcp_nodelayon;keepalive_timeout65;types{video/mp4mp4;video/x-flvflv;}#»º´æÉèÖã¬Ìá¸ß»á¼ûËÙÂÊexpires30d;}}}
Õâ¶ÎÉèÖÃչʾÁËÔõÑùÖ¸¶¨ÊÓÆµÎļþµÄ´æ·Å·¾¶£¬²¢ÉèÖÃÁËһЩ»ù±¾µÄHTTPÍ·ÐÅÏ¢£¬ÀýÈçÔÊÐí¿çÓò»á¼û¡£sendfile¡¢tcp_nopushºÍtcp_nodelayµÈÖ¸ÁîÄܹ»ÓÅ»¯ÎļþµÄ´«ÊäЧÂÊ¡£expiresÖ¸ÁîÔò¿ÉÒÔÖ¸µ¼ä¯ÀÀÆ÷»º´æÊÓÆµÎļþ£¬ïÔÌÖØ¸´ÇëÇó¡£
¹ØÓÚʵʱֱ²¥³¡¾°£¬RTMP(Real-TimeMessagingProtocol)ÊÇÏÖÔÚÓ¦ÓÃ×îÆÕ±éµÄÐÒéÖ®Ò»¡£Nginx×Ô¼º²¢²»Ö±½ÓÖ§³ÖRTMP£¬µ«¿ÉÒÔͨ¹ýǿʢµÄnginx-rtmp-moduleÄ£¿éÀ´ÊµÏÖRTMPÁ÷ýÌå·þÎñÆ÷µÄ¹¦Ð§¡£
¸ÃÄ£¿é½«Nginxת»¯ÎªÒ»¸ö¹¦Ð§ÍêÕûµÄRTMP·þÎñÆ÷£¬Äܹ»ÎüÊÕÖ±²¥ÍÆÁ÷£¬²¢½«Á÷ýÌå·Ö·¢¸ø¹ÛÖÚ¡£
ÒªÆôÓÃnginx-rtmp-module£¬Í¨³£ÐèÒªÔÚ±àÒëNginxʱ½«Æä×÷ΪµÚÈý·½Ä£¿é¼ÓÈë¡£Ò»µ©×°ÖÃÀֳɣ¬¾Í¿ÉÒÔÔÚnginx.confÖÐÌí¼ÓRTMPÏà¹ØµÄÉèÖãº
rtmp{server{listen1935;#RTMPĬÈ϶˿Úchunk_size4096;applicationlive{liveon;recordoff;#ÈôÊDz»?ÐèÒªÂ¼ÖÆÖ±²¥Á÷£¬¿ÉÒÔÉèÖÃΪoffallowpublish127.0.0.1;#ÔÊÐíÍâµØÍÆÁ÷allowplayall;#ÔÊÐíËùÓÐÈ˲¥?·Å}}}http{#...Ç°ÃæÌáµ½µÄHTTPÉèÖÃ...#ÕûºÏRTMPÖ±²¥Á÷µ½HTTPlocation/hls{types{application/vnd.apple.mpegurlm3u8;video/mp2tts;}root/tmp;#HLS·ÖƬ´æ·ÅĿ¼add_headerCache-Controlno-cache;add_headerAccess-Control-Allow-Origin*;#ÅäºÏnginx-rtmp-moduleµÄ?HLSÉèÖÃhlson;hls_path/tmp/hls;#HLS·ÖƬÊä³ö·¾¶hls_fragment5s;#HLS·ÖƬʱ³¤}}
ÔÚÕâ¸öÉèÖÃÖУ¬rtmp¿é½ç˵ÁËÒ»¸öRTMP·þÎñÆ÷£¬¼àÌý1935¶Ë¿Ú¡£applicationlive²¿·Ö½ç˵ÁËÒ»¸öÃûΪliveµÄÖ±²¥Ó¦Óã¬liveon;¿ªÆôÁËÖ±²¥?¹¦Ð§¡£allowpublishºÍallowplay¿ØÖÆÁËÍÆÁ÷ºÍ²¥·ÅµÄȨÏÞ¡£
¸üÖ÷ÒªµÄÊÇ£¬nginx-rtmp-module»¹Ö§³Ö½«RTMPÁ÷ת»»ÎªHLSÃûÌá£ÔÚhttp¿éÖеÄ/hlslocation£¬Í¨¹ýhlson;¡¢hls_pathºÍhls_fragmentµÈÖ¸Á¿ÉÒÔ½«RTMPÖ±²¥Á÷ʵʱµØÖ§½â³ÉHLSµÄ.m3u8Ë÷ÒýÎļþºÍ.tsÒôÊÓÆµÆ¬¶Ï£¬Àû±ãʹÓñê×¼µÄHTTPÐÒé¾ÙÐв¥·Å¡£
Õ⼫´óµØ¼ò»¯ÁËÖ±²¥Á÷µÄ·Ö·¢£¬ÓÉÓÚÏÕЩËùÓÐ×°±¸ºÍä¯ÀÀÆ÷¶¼Ö§³ÖHTTPÐÒé¡£
ÖÁ´Ë£¬ÎÒÃÇÒѾÆðÔ´ÏàʶÁËNginxÔÚÊÓÆµ²¥·Å³¡¾°ÏµÄ?»ù´¡ÄÜÁ¦£¬°üÀ¨Í¨¹ýHTTPÖ±½Ó²¥·Åµã²¥ÊÓÆµ£¬ÒÔ¼°Ê¹ÓÃnginx-rtmp-moduleʵÏÖRTMPÖ±²¥ºÍHLSÁ÷ýÌåµÄÌìÉú¡£ÒªÕæÕý´òÔìÒ»¸ö¸ßÐÔÄÜ¡¢¸ß¿ÉÓá¢Óû§ÌåÑé׿ԽµÄÊÓÆµ²¥·Åƽ̨£¬»¹ÐèÒª¸üÉîÈëµÄÓÅ»¯ºÍ¸ü¸ß¼¶µÄ¹¦Ð§¡£
NginxÊÓÆµ²¥·Å¸ß¼¶ÓÅ»¯Óëʵ¼ù£ºÊµÏÖ¼«ÖµÄÁ÷ýÌåÌåÑé
ÔÚǰһ²¿·Ö£¬ÎÒÃÇ̽ÌÖÁËNginxÔÚÊÓÆµ²¥·Å·½ÃæµÄ»ù´¡ÉèÖúͶÔRTMP¡¢HLSÐÒéµÄÖ§³Ö¡£Ëæ×ÅÓû§¶ÔÊÓÆµÖÊÁ¿ÒªÇóµÄÒ»Ö±Ìá¸ß£¬ÒÔ¼°Á÷ýÌåÓ¦Óó¡¾°µÄÈÕÒæÖØ´ó£¬½ö½öÒÀÀµ»ù´¡ÉèÖÃÊÇÔ¶Ô¶²»·óµÄ¡£ÎÒÃÇÐèÒª½øÒ»²½ÉîÈëNginxµÄ¸÷Ïî¸ß¼¶¹¦Ð§£¬²¢ÍŽáÏÖʵµÄÁ÷ýÌåÊÖÒÕ£¬À´¹¹½¨Ò»¸öÄܹ»Ìṩ¼«Ö¹ÛÓ°ÌåÑéµÄÊÓÆµ²¥·Åƽ̨¡£
×Ô˳Ӧ±ÈÌØÂÊÁ÷(AdaptiveBitrateStreaming)£ºÓ¦¶Ô²î±ðÍøÂçÇéÐεÄÒªº¦
ÔÚÍøÂçÇéÐζà±äµÄ½ñÌ죬Óû§¿ÉÄÜÉí´¦¸ßËÙWi-Fi¡¢4GÍøÂ磬ÉõÖÁÐźŲ»?¼ÑµÄÒÆ¶¯ÍøÂ硣ΪÁËÈ·±£²¥·ÅµÄ?Á÷ͨÐÔ£¬×Ô˳Ӧ±ÈÌØÂÊÁ÷ÊÖÒÕÓ¦Ô˶øÉú¡£HLSºÍDASHÊÇÄ¿½ñ×îÖ÷Á÷µÄÁ½ÖÖ×Ô˳Ӧ±ÈÌØÂÊÁ÷ýÌåÐÒ飬ËüÃÇͨ¹ý½«ÊÓÆµÖ§½â³É²»?Í¬Çø·ÖÂʺÍÂëÂʵÄСƬ¶Ï£¬²¢ÌìÉúÒ»¸öË÷ÒýÎļþ£¨Èç.m3u8»ò.mpd£©£¬¿Í»§¶Ë²¥·ÅÆ÷»áƾ֤Ŀ½ñÍøÂç״̬¶¯Ì¬µØÑ¡Ôñ×îÊʺϵÄ?ÊÓÆµÆ¬¶Ï¾ÙÐв¥·Å£¬´Ó¶øÊµÏÖ¡°¿¨¶Ù¡±µÄ×îС»¯¡£
Nginx£¬ÌØÊâÊÇͨ¹ýnginx-rtmp-moduleºÍnginx-vod-moduleµÈÄ£¿é£¬Äܹ»ÓÐÓõØÖ§³ÖHLSºÍDASH¡£ÈçǰËùÊö£¬nginx-rtmp-module¿ÉÒÔ½«RTMPÁ÷ʵʱתÂë²¢ÌìÉúHLSÁ÷¡£¶ønginx-vod-moduleÔò¸üרעÓڵ㲥³¡¾°£¬Ëü¿ÉÒÔ¶ÔMP4µÈÊÓÆµÎļþ¾ÙÐж¯Ì¬ÇÐÆ¬£¬ÌìÉúHLSºÍDASHÃûÌõIJ¥·ÅÁÐ±í¡£
ÒÔHLSΪÀý£¬Ê¹ÓÃnginx-vod-moduleµÄÉèÖÿÉÄÜÈçÏÂËùʾ£º
http{#...ÆäËûÉèÖÃ...vodon;#ÆôÓÃVODÄ£¿évod_root/path/to/your/vod/files;#´æ·ÅÔ´ÊÓÆµÎļþµÄĿ¼vod_manifest_path/path/to/your/vod/manifests;#ÌìÉúµÄm3u8Îļþ´æ·ÅĿ¼server{listen80;server_nameexample.com;location/vod/{alias/path/to/your/vod/files/;autoindexon;types{application/vnd.apple.mpegurlm3u8;video/mp2tts;}expires30d;}#VODÄ£¿éµÄ?½Ó¿Ú£¬ÓÃÓÚÌìÉúm3u8Îļþlocation/vod.m3u8{vod_generate_m3u8;}}}
ÔÚÕâ¸öÉèÖÃÖУ¬vodon;ÆôÓÃÁËVODÄ£¿é¡£vod_rootÖ¸¶¨ÁË´æ´¢ÔʼÊÓÆµÎļþµÄλÖá£/vod.m3u8Õâ¸ölocationÊÇVODÄ£¿éÌṩµÄ½Ó¿Ú£¬µ±¿Í»§¶ËÇëÇó/vod.m3u8?file=your_video.mp4ʱ£¬VODÄ£¿é¾Í»áƾ֤your_video.mp4ÌìÉúÏìÓ¦µÄHLS²¥·ÅÁÐ±í¡£
ÕâÖÖ¶¯Ì¬ÌìÉúµÄ·½·¨£¬Ê¹µÃNginxÄܹ»ºÜÊǸßЧµØÎª´ó×ڵ㲥ÊÓÆµÌṩHLS·þÎñ£¬¶øÎÞÐèÌáǰ½«ËùÓÐÊÓÆµ¶¼×ªÂë³ÉHLSÃûÌá£
¹ØÓÚÃæÏòÈ«ÇòÓû§µÄÊÓÆµÆ½Ì¨¶øÑÔ£¬½«ÊÓÆµÄÚÈݰ²ÅÅÔÚÀëÓû§×î½üµÄ·þÎñÆ÷ÉÏÊÇÌáÉý²¥·ÅÌåÑéµÄÒªº¦¡£Õâ¾ÍÐèÒª½èÖúCDN(ContentDeliveryNetwork)ÊÖÒÕ¡£Nginx×Ô¼º¾ÍÊÇÒ»¸öºÜÊÇÓÅÒìµÄCDNÔ´Õ¾·þÎñÆ÷¡£Í¨¹ý½«Nginx·þÎñÆ÷°²ÅÅÔÚÊÓÆµÄÚÈݵÄÔ´Í·£¬²¢ÉèÖÃÏìÓ¦µÄ»º´æ?Õ½ÂÔ£¬CDN½Úµã¾Í¿ÉÒÔ´ÓNginxÔ´Õ¾»ñÈ¡ÊÓÆµÄÚÈÝ£¬²¢½«Æä»º´æµ½Àë×îÖÕÓû§¸ü½üµÄ½ÚµãÉÏ¡£
NginxÔÚCDNÖеÄ?×÷ÓÃÖ÷ÒªÌåÏÖÔÚÒÔϼ¸¸ö·½Ã棺
¸ßÐÔÄÜÔ´Õ¾£ºNginxÄܹ»¸ßЧµØ´¦Öóͷ£CDN½ÚµãÌᳫµÄÇëÇ󣬰ü¹ÜÊÓÆµÄÚÈݵĿìËÙ»ñÈ¡¡£»º´æÓÅ»¯£ºÍ¨Ï꾡ÄåµÄexpires¡¢proxy_cacheµÈÉèÖã¬Nginx¿ÉÒÔÓÐÓõعÜÀíÊÓÆµÄÚÈݵĻº´æ£¬ïÔÌÔ´Õ¾µÄѹÁ¦£¬²¢¼ÓËÙCDN½ÚµãµÄ¸üС£
ÐÒéÖ§³Ö£ºNginx¶ÔHTTP/2¡¢TLS/SSLµÈÐÒéµÄÖ§³Ö£¬Äܹ»ÎªCDN´«ÊäÌṩ¸ü¿ìµÄËÙÂʺ͸üÇå¾²µÄ°ü¹Ü¡£¿µ½¡¼ì²éÓë¸ºÔØÆ½ºâ£ºNginxÒ²¿ÉÒÔ×÷ΪCDNÄÚ²¿µÄ¸ºÔØÆ½ºâÆ÷£¬½«ÇëÇó·Ö·¢µ½¶à¸öNginxºó¶Ë·þÎñÆ÷£¬Ìá¸ßÕûÌåµÄ¿ÉÓÃÐÔ¡£
³ýÁË·þÎñÆ÷¶ËµÄÉèÖã¬ÊÓÆµÄÚÈݵÄÓÅ»¯×Ô¼ºÒ²¶Ô²¥·ÅÌåÑéÖÁ¹ØÖ÷Òª¡£NginxËäÈ»²»ÊÇÒ»¸öÊÓÆµ×ªÂ빤¾ß£¬µ«Ëü¿ÉÒÔÅäºÏһЩµÚÈý·½·þÎñ»ò¹¤¾ß£¬ÊµÏÖÊÓÆµÄÚÈݵÄÔ¤´¦Öóͷ£ºÍÓÅ»¯¡£
ÂëÂÊ¿ØÖÆ£ºÔÚÊÓÆµ±àÂë½×¶Î£¬ºÏÀíÉèÖÃÊÓÆµµÄÂëÂÊÊÇÆ½ºâ»ÖʺÍÎļþ¾ÞϸµÄÒªº¦¡£¹ØÓÚHLSºÍDASH£¬¸üÊÇÐèÒªÌṩ¶àÖÖÂëÂʵÄÊÓÆµÁ÷¡£Òªº¦Ö¡ÓÅ»¯£ºÊÓÆµ²¥·ÅµÄseek£¨¿ì½ø/¿ìÍË£©²Ù×÷£¬ÐèÒªÒÀÀµÓÚÒªº¦Ö¡¡£NginxÔÚ´¦Öóͷ£HLS/DASHʱ£¬Æä²¥·ÅÆ÷¿ÉÒÔÆ¾Ö¤Ë÷ÒýÎļþºÍÊÓÆµÆ¬¶Ï¿ìËÙ¶¨Î»µ½²¥·Åµã¡£
MP4/FLVÓÅ»¯£º¹ØÓÚÖ±½Óͨ¹ýHTTP²¥·ÅµÄMP4»òFLVÎļþ£¬Nginx¿ÉÒÔͨ¹ýngx_http_mp4_moduleµÈÄ£¿é£¬ÓÅ»¯Îļþ½á¹¹£¬Ê¹Æä¸üÊʺÏÁ÷ʽ´«Ê䣬ÀýÈ罫moovatom·Åµ½ÎļþÍ·²¿£¬ÕâÑù²¥·ÅÆ÷ÎÞÐèÏÂÔØÕû¸öÎļþ¼´¿É×îÏȲ¥·Å¡£
Ëæ×ÅÊÓÆµ·þÎñµÄÆÕ¼°£¬Çå¾²ÎÊÌâÒ²ÈÕÒæÍ¹ÏÔ¡£NginxÌṩÁ˶àÖÖ°²?È«»úÖÆÀ´±£»¤ÊÓÆµÁ÷£º
»á¼û¿ØÖÆ£ºÍ¨¹ýallowºÍdenyÖ¸Á¿ÉÒÔÏÞÖÆÌØ¶¨IPµØÖ·»òÍøÂçµÄ»á¼û¡£ÊðÃûURL£º¹ØÓÚÃô¸Ð»ò¸¶·ÑÊÓÆµ£¬¿ÉÒÔʹÓÃNginxµÄµÚÈý·½Ä£¿é£¨Èçngx_http_secure_link_module£©ÌìÉúÓÐʱЧÐÔµÄÊðÃûURL£¬±ÜÃâ²»·¨·ÖÏí¡£
TLS/SSL¼ÓÃÜ£ºÊ¹ÓÃHTTPSÐÒé¶ÔÊÓÆµÁ÷¾ÙÐмÓÃÜ£¬±£»¤´«ÊäÀú³ÌÖеÄÊý¾ÝÇå¾²¡£
¶ÔNginxÊÓÆµ·þÎñÆ÷¾ÙÐÐÓÐÓÃµÄ¼à¿ØÒ²ÊDZز»¿ÉÉٵġ£Í¨¹ýNginxµÄstub_statusÄ£¿é£¬¿ÉÒÔʵʱÉó²é·þÎñÆ÷µÄÅþÁ¬Êý¡¢ÇëÇóÊýµÈÒªº¦Ö¸±ê¡£ÍŽáPrometheus¡¢GrafanaµÈ¼à¿Ø¹¤¾ß£¬¿ÉÒÔ¹¹½¨ÍêÕûµÄÊÓÆµ·þÎñ¼à¿ØÏµÍ³£¬ÊµÊ±·¢Ã÷Ï¢Õù¾öDZÔÚÎÊÌâ¡£
NginxÔÚÊÓÆµ²¥·ÅÁìÓòµÄÓ¦Óã¬ÒѾ´ÓÒ»¸ö¼òÆÓµÄÎļþ·þÎñÆ÷£¬Ñݱä?³ÉÁËÒ»¸ö¹¦Ð§Ç¿Ê¢¡¢ÐÔÄÜ׿ԽµÄÁ÷ýÌå½â¾ö¼Æ»®¡£Í¨¹ý¶ÔRTMP¡¢HLS¡¢DASHµÈÐÒéµÄÖ§³Ö£¬ÒÔ¼°ÓëCDN¡¢ÊÓÆµÓÅ»¯ÊÖÒÕµÄÍŽᣬNginxÄܹ»×ÊÖú¿ª·¢ÕßÇáËɴÆðÄܹ»Öª×ãÖÖÖÖ³¡¾°ÐèÇóµÄÊÓÆµ²¥·Åƽ̨¡£
ÎÞÂÛÊÇСÎÒ˽¼Ò²©¿ÍÉϵÄÊÓÆµ·ÖÏí£¬ÕվɴóÐÍÊÓÆµÍøÕ¾µÄÖ±²¥ÍÆÁ÷£¬Nginx¶¼Äܹ»ÌṩÎȹ̡¢¸ßЧ¡¢Á÷ͨµÄÊÓÆµ²¥·ÅÌåÑ飬ÈÃÿһ´ÎԢĿ¶¼³ÉΪһ´ÎÓäÔõÄÓ°ÒôÏíÊÜ¡£ÕÆÎÕNginxµÄÊÓÆµ²¥·ÅÖ®µÀ£¬¾ÍÊÇÕÆÎÕÁËÅþÁ¬ÄÚÈÝÓëÓû§µÄÒªº¦ÊÖÒÕ£¬ÎªÓû§´øÀ´ÎÞÓëÂױȵÄÊý×ÖÓéÀÖÌåÑé¡£