Nginx£ºÊÓÆµ´«ÊäµÄ»úÄÜÍõÕߣ¬100%ЧÄܵĻùʯ
ÔÚµ±½ñÐÅÏ¢±¬Õ¨µÄʱÆÚ£¬ÊÓÆµÒѳÉ?ΪÈËÃÇ»ñÊØÐÅÏ¢¡¢ÓéÀÖÐÝÏеÄÖ÷Á÷·½Ê½¡£´Ó¶ÌÊÓÆµµÄ¹ÄÆðµ½¸ßÇå¡¢4KÉõÖÁ8KÊÓÆµµÄ?±é¼°£¬Óû§¶ÔÊÓÆµ²¥·ÅµÄÁ÷³©¶È¡¢¼ÓÔØ¿ìÂÊÌá³öÁËǰËùδÓеĸßÒªÇó¡£Ã¿Ò»´Î?¿¨¶Ù¡¢Ã¿Ò»´ÎÂþ³¤µÄ¼ÓÔØ£¬¶¼¿ÉÄܵ¼ÖÂÓû§Á÷ʧ£¬ÇÖº¦Æ·ÅÆÐÎÏó¡£ÔÚÕâÑùµÄ²¼¾°Ï£¬Ò»¸ö׳´ó¡¢¸ßЧµÄÊÓÆµ´«Êä½â¾ö¹æ»®ÖÁ¹Ø³ÁÒª¡£
¶øNginx£¬Õâ¸öÒԸ߻úÄÜ¡¢¸ß²¢·¢Öø³ÆµÄ?Web·þÎñÆ÷£¬ÕýÒÔÆä׿ԽµÄÄÜÁ¦£¬³É?ΪÎÞÊýÁ÷ýÌåÆ½Ì¨ºÍÊÓÆµ·þÎñÉ̵ÄÊ×Ñ¡£¬ÎªÊµÏÖ¡°Nginx100%ÊÓÆµ100%»úÄÜ¡±µÄÖ¸±ê?µì¶¨Á˼áʵ»ù´¡¡£
NginxÖ®ËùÒÔÄÜÔÚÊÓÆµ´«ÊäÁìÓòÍÑÓ±¶ø³ö£¬Ô´ÓÚÆä¹ÖÒìµÄÉè¼Æ¼Ü¹¹¡£Ó봫ͳµÄ?Apache·þÎñÆ÷·ÖÆç£¬NginxѡȡµÄ?ÊÇÊÂÎñÇý¶¯¡¢Òì²½·Ç×èÈûµÄ¹¤×÷ģʽ¡£ÕâÒâζ×ÅNginxÄܹ»Óü«ÉٵĹý³Ì»òỊ̈߳¬Í¬Ê±´¦ÖóÉǧÉÏÍò¸ö²¢·¢Ïνӣ¬¶øÎÞÐèΪÿ¸öÏνӴ´½¨¶ÀÁ¢µÄ¹ý³Ì»òÏß³Ì?£¬´Ó¶ø¼«´óµØ?½µµÍÁËϵͳ×ÊÔ´¿÷Ëð£¬ÏÔÖøÌáÉýÁË´¦ÖÃÄÜÁ¦¡£
ÊÂÎñÇý¶¯Ä£ÐÍ£ºNginx½«I/O²Ù×÷³éÏóΪÊÂÎñ£¬µ±Ò»¸öÏνӱØÒª½øÐÐI/O²Ù×÷ʱ£¬Nginx²»»á×èÈûÆÚ´ý£¬¶øÊǽ«¸ÃÏνӷÅÈëÊÂÎñ¶ÓÁУ¬³ÖÐø´¦ÖÃÆäËûÏνӡ£µ±I/O²Ù×÷ʵÏÖʱ£¬ÏµÍ³»á֪ͨNginx£¬NginxÔÙ»ØÀ´´¦ÖøÃÏνӡ£
ÕâÖÖģʽʹµÃNginx¿ÉÄܸßЧµØ´¦ÖôóÁ¿²¢·¢Ïνӣ¬ÓÈÆäºÏÓÃÓÚÊÓÆµÁ÷ÕâÖÖ±ØÒª³ÖÐø¡¢²»±äÏνӵÄ?³¡¾°¡£Òì²½·Ç×èÈûI/O£ºNginxʹÓÃepoll(Linux)»òkqueue(BSD)µÈ¸ßЧµÄI/O¶à·¸´ÓûúÔ죬¿ÉÄÜͬʱ¼àÌý¶à¸öÍøÂçÃèÊö·û£¬¶øÎÞÐèΪÿ¸öÃèÊö·û´´½¨µ¥¶ÀµÄÏ̡߳£
µ±Êý¾Ý´ïµ½Ê±£¬Nginx»áµ±¼´´¦Ö㬶ø²»ÊÇÆÚ´ýÊý¾Ý´«Êä½áÊø¡£ÕâʹµÃNginxÔÚ´¦ÖôóÁ¿Ó×Îļþ´«Ê䣬»òÕßÏñÊÓÆµÁ÷ÕâÑù³ÖÐø²úÉúÊý¾ÝµÄ³¡¾°Ï£¬²û·¢ÓÈΪ½Ü³ö£¬Ô¤·ÀÁËÒò×èÈûI/OÔì³ÉµÄ»úÄÜÆ¿¾±¡£Worker¹ý³ÌÉè¼Æ£ºNginxµÄMaster¹ý³ÌÕÆ¹ÜÖÎÀíWorker¹ý³Ì£¬¶øWorker¹ý³ÌÔòÕÆ¹Ü´¦ÖÃÏÖʵµÄÍøÂçÒªÇó¡£
ÕâÖÖ·ÖÀëÉè¼ÆÊ¹µÃNginx¿ÉÄܳä·ÖÀûÓöàºËCPUµÄÓÅÊÆ£¬Ã¿¸öWorker¹ý³ÌÄܹ»ÔËÐÐÔÚÒ»¸öCPUÖ÷ÌâÉÏ£¬ÊµÏÖÕæÕýµÄ²¢Ðд¦Ö᣶ÔÓÚÊÓÆµ´«ÊäÕâÖÖ±ØÒª×³´óÍÆËãÄÜÁ¦ºÍI/OÄÜÁ¦µÄ¹¤×÷£¬¶àWorker¹ý³Ì?µÄÐͬ¹¤×÷¿ÉÄÜÏÔÖøÌáÉýÕûÌåÍÌÍÂÁ¿¡£
¶þ¡¢Ö÷ÌâÖ°ÄÜÓÅ»¯£ºNginxÈôºÎʵÏÖ¡°100%ÊÓÆµ»úÄÜ¡±
Nginx¿ÉÄÜʵÏÖ¿¿½ü¡°100%ÊÓÆµ»úÄÜ¡±²¢·ÇÎÞÒ⣬¶øÊÇÆäÄÚÖõÄ׳´óÖ°ÄÜÓ뾫ÃÜ»¯ÅäÖù²Í¬×÷ÓõÄÁ˾֡£
¸ßЧµÄ¾²Ì¬Îļþ·þÎñ£ºÊÓÆµÎļþͨ³£ÊǾ²Ì¬ÄÚÈÝ£¬NginxÔÚ¾²Ì¬Îļþ·þÎñ·½ÃæÕ¼ÓÐÎ޿ɱÈÁ¦µÄÓÅÊÆ¡£Ëü¿ÉÄÜÒÔ¼«¿ìµÄ¿ìÂÊÖ±½Ó´Ó´ÅÅ̶ÁÈ¡Îļþ£¬²¢Í¨¹ýsendfileϵͳŲÓ㬽«ÎļþÊý¾ÝÖ±½Ó´ÓÄں˿ռ䴫Êäµ½ÍøÂçÌ×½Ó×Ö£¬ÈƹýÁËÓû§¿Õ¼ä£¬¼«´óµØÏ÷¼õÁËCPUºÍÄÚ´æµÄ¿½±´¿ªÏú£¬ÏÔÖøÌáÉýÁËÎļþ´«ÊäЧÄÜ¡£
ÕâÒâζ×ÅNginxÄܹ»¾ø²»·Ñ¾¢µØ´¦Öú£Á¿ÊÓÆµÎļþµÄ¼±¾ç·Ö·¢¡£×³´ó?µÄ»º´æ»úÔ죺¶ÔÓÚÆµÈÔ½Ó¼ûµÄÈȵãÊÓÆµÄÚÈÝ£¬NginxµÄ»º´æÖ°ÄÜÊÇÌáÉý»úÄܵĹؼü¡£Í¨¹ýÅäÖÃproxy_cache»òfastcgi_cacheµÈÄ£¿é£¬Äܹ»½«ÊÓÆµÎļþ»º´æÔÚÄÚ´æ»ò´ÅÅÌÉÏ¡£
µ±Óû§ÔÙ´ÎÒªÇóÒ»ÑùµÄÊÓÆµÊ±£¬NginxÄܹ»Ö±½Ó´Ó»º´æÖÐÌṩ·þÎñ£¬ÎÞÐèÔٴδÓÔ´·þÎñÆ÷¶ÁÈ¡£¬´Ó¶ø´ó´ó½µµÍÁËÔ´·þÎñÆ÷µÄѹÁ¦£¬Ëõ¶ÌÁËÏìÓ¦¹¦·ò£¬ÊµÏÖÁ˽üºõ˲ʱµÄ½Ó¼ûÂÄÀú¡£¸ßЧµÄGzipѹËõ£º¹ÌÈ»ÊÓÆµÎļþ×ÔÉíͨ³£ÒѾ¾¹ý¸ß¶ÈѹËõ£¬µ«¶ÔÓÚһЩ¸¨ÖúÎļþ£¨ÈçÊÓÆµ²¥·ÅÆ÷ÅäÖÃÎļþ¡¢×ÖÄ»ÎļþµÈ£©£¬GzipѹËõÒÀÈ»ÄÜÆðµ½¿Ï¶¨µÄ¼Ó¿ì×÷Óá£
NginxÄÚÖõÄGzipÄ£¿éÄܹ»¶ÔÕâЩÎı¾ÀàÊý¾Ý½øÐÐʵʱѹËõ£¬Ï÷¼õ´«?ÊäÁ÷Á¿£¬Ìá¸ß¼ÓÔØ¿ìÂÊ¡£HTTP/2&HTTP/3Ö§³Ö£ºËæ×Å»¥ÁªÍø¼¼ÊõµÄ·¢Õ¹£¬HTTP/2ºÍHTTP/3ºÍ̸µÄ³öÏÖΪÊÓÆµ´«Êä´øÀ´ÁËеÄÊï¹â¡£Nginx¶ÔÕâЩкÍ̸ÌṩÁËÓÅÁ¼µÄÖ§³Ö¡£
HTTP/2µÄ¶à·¸´ÓøöÖ°Äܹ»ÏÔÖøÏ÷¼õÏνÓÊý£¬½µµÍÑÓ³¤£»HTTP/3Ôò»ùÓÚQUICºÍ̸£¬½øÒ»²½ÓÅ»¯ÁËTCPÔÚ²»?²»±äÍøÂçϵĻúÄÜ£¬Ï÷¼õÁ˶ª°ü³Á´«´øÀ´µÄÓ°Ï죬¶ÔÓÚÊÓÆµÁ÷µÄ²»±äÐÔÖÁ¹Ø³ÁÒª¡£
NginxµÄÁíÒ»¸öÏÔÖøÌØµãÊÇÆä¸ß¶ÈÄ£¿é»¯µÄÉè¼Æ¡£ÕâÒâζ×ÅÄãÄܹ»Æ¾¾Ý×Ô¼ºµÄ¾ßÌåÐèÒª£¬½Ã½ÝµØÑ¡ÔñºÍ¼ÓÔØ¸÷ÀàÖ°ÄÜÄ£¿é£¬ÉõÖÁÄܹ»×ÔÐпª·¢¶¨ÔìÄ£¿é¡£
RTMPÄ£¿é£º¶ÔÓÚÁ÷ýÌåÖ±²¥¶øÑÔ£¬RTMP(Real-TimeMessagingProtocol)ÊÇÒ»¸ö¼«¶È³ÁÒªµÄºÍ̸¡£Í¨¹ý¼ÓÔØnginx-rtmp-module£¬NginxÄܹ»Ö±½Ó×÷ΪRTMP·þÎñÆ÷£¬½Ó¹ÜÖ±²¥ÍÆÁ÷£¬²¢½«Ö±²¥Á÷·Ö·¢¸øÅÔ¹ÛÕߣ¬ÊµÏÖ¸ßЧµÄÖ±²¥·þÎñ¡£
HLS/DASHÖ§³Ö?£ºHLS(HTTPLiveStreaming)ºÍDASH(DynamicAdaptiveStreamingoverHTTP)ÊÇĿǰÖ÷Á÷µÄÊÓÆµµã²¥ºÍÖ±²¥½â¾ö¹æ»®£¬ËüÃǽ«ÊÓÆµÔ׸î³ÉÓ×Îļþ£¬²¢Í¨¹ýHTTP½øÐд«Ê䣬±ãÓÚCDN·Ö·¢ºÍ×ÔÊÊÓ¦ÂëÂʲ¥·Å¡£
NginxÄܹ»Í¨¹ý¹²Í¬ÓйصÄÄ£¿é»ò¹¤¾ß£¬ÇáËÉʵÏÖHLS/DASHÊÓÆµÁ÷µÄתÂë¡¢·â×°ºÍ·Ö·¢¡£µÚÈý·½Ä£¿é£ºÉçÇø»¹ÌṩÁË´óÁ¿ÓÅÁ¼µÄµÚÈý·½Ä£¿é£¬ÀýÈçÓÃÓÚÊÓÆµ×ªÂë¡¢ÄÚÈݼÓÃÜ¡¢DRM(Êý×Ö°æÈ¨ÖÎÀí)¡¢¸æ°×²åÈëµÈÖ°ÄܵÄÄ£¿é£¬ÕâЩģ¿éÄܹ»¼«´ó?µØÀ©´óNginxµÄÄÜÁ¦£¬Âú×ã¸ü¸´ÔÓµÄÊÓÆµÒµÎñÐèÒª¡£
×ܶøÑÔÖ®£¬Nginxƾ½èÆä׿ԽµÄÊÂÎñÇý¶¯¼Ü¹¹¡¢¸ßЧµÄI/O´¦ÖûúÔ졢׳´óµÄ¾²Ì¬Îļþ·þÎñÄÜÁ¦¡¢½Ã½ÝµÄ?»º´æÕ½ÊõÒÔ¼°¶Ô×îÐÂÍøÂçºÍ̸µÄÖ§³Ö£¬ÒѾ³ÉΪʵÏÖ¡°Nginx100%ÊÓÆµ100%»úÄÜ¡±µÄÃÎÏëÑ¡Ôñ¡£Ëü²»½öÄÜÌṩ²»±ä¡¢¸ß¿ìµÄÊÓÆµ´«Ê䣬¸üÄÜͨ¹ýÆä¸ß¶ÈµÄÀ©´óÐÔ£¬Îª²»Ðݱ䶯µÄÁ÷ýÌåÒµÎñÌṩǿÓÐÁ¦µÄ¼¼ÊõÖ§³Ö¡£
±ÉÈËÒ»²¿ÃÅ£¬ÎÒÃǽ«Éî¿Ì̽ÇóNginxÔÚÏÖʵ²¿ÊðÖУ¬ÈôºÎͨ¹ý¾«ÃÜ»¯ÅäÖ㬽øÒ»²½Ñ¹Õ¥»úÄÜ£¬ÊµÏÖÊÓÆµ´«ÊäµÄ¼«ÖÂÓÅ»¯¡£
NginxÊÓÆµ»úÄÜÓÅ»¯ÊµÕ½£º´òÔ쳬·²Á÷ýÌåÂÄÀúµÄϸ½Ú°Ñ¿Ø
ÔÚÉÏÒ»²¿ÃÅ£¬ÎÒÃÇÉî¿ÌÏàʶÁËNginxµÄ¼Ü¹¹ÓÅÊÆ¼°ÆäÖ÷ÌâÖ°ÄÜ£¬ÕâЩΪʵÏÖ¡°Nginx100%ÊÓÆµ100%»úÄÜ¡±µì¶¨Á˼áʵµÄ»ù´¡¡£ÀíÂÛÖÕÓÚÊÇÀíÂÛ£¬½«NginxµÄ»úÄÜDZÁ¦ÆëÈ«¿ªÊÍ£¬»¹±ØÒªÔÚÏÖʵ²¿ÊðÖнøÐÐÏêϸÈë΢µÄÅäÖÃÓÅ»¯¡£±¾²¿ÃŽ«¾Û½¹ÓÚNginxÔÚÊÓÆµ´«ÊäÁìÓòµÄ»úÄܵ÷ÓÅÕ½Êõ£¬´Ó?Á¬ÊÕÊÜÀí¡¢»º´æ?²ß?ÂÔ¡¢¸ºÔØÆ½ºâµ½´«?ÊäºÍ̸µÄÓÅ»¯£¬ÎªÄú³öÏÖÒ»·ÝÏ꾡µÄʵսָÄÏ¡£
ÊÓÆµÁ÷µÄÌØµãÊÇÏνӹ¦·ò³¤¡¢Êý¾Ý´«Êä³ÖÐø¡£Òò¶ø?£¬ÈôºÎ¸ßЧµØÖÎÀíº£Á¿³¤Ïνӣ¬ÊÇNginx»úÄÜÓÅ»¯µÄÖ÷Ìâ¡£
workerprocessesÓëworkerconnections£ºworker_processes:½¨ÒéÉèÖÃΪCPUÖ÷ÌâÊý£¬»òÂÔ¶àÓÚCPUÖ÷ÌâÊý£¬ÒÔ³ä·ÖÀûÓöàºËÓÅÊÆ£¬ÊµÏÖ²¢Ðд¦Öá£ÀýÈ磬ÈôÊÇ·þÎñÆ÷ÓÐ8¸öCPUÖ÷Ì⣬Äܹ»ÉèÖÃworker_processes8;¡£
worker_connections:Õâ¸ö²ÎÊý¾ö¶¨ÁËÿ¸öWorker¹ý³Ì¿ÉÄÜͬʱ´¦ÖõÄ×î´ó?ÏνÓÊý¡£Æäֵͨ³£±ØÒªÆ¾¾Ý·þÎñÆ÷µÄÄÚ´æºÍ²¢·¢ÏνÓÐèÒªÀ´É趨¡£Ò»¸ö¾Ñ鹫ʽÊÇ£ºworker_connections*worker_processesÓ¦¸Ã´óÓÚÄãÔ¤ÆÚµÄ×î´ó²¢·¢ÏνÓÊý¡£
¶ÔÓÚÊÓÆµ´«Ê䣬Õâ¸öÖµ¿ÉÄܱØÒªÉèÖõýϸߣ¬ÀýÈçworker_connections4096;»ò¸ü¸ß¡£keepalivetimeoutÓëkeepaliverequests£ºkeepalive_timeout:ÉèÖó¤ÏνӵÄ?³¬²»¶Ï¼ä¡£
¶ÔÓÚÊÓÆµÁ÷£¬Äܹ»Êʵ±µ¢¸é´ËÖµ£¬Ô¤·ÀƵÈÔ³ÉÁ¢ÏνӴøÀ´µÄ?¿ªÏú¡£ÀýÈçkeepalive_timeout75s;¡£keepalive_requests:ÉèÖÃÔÚÒ»¸ö³¤ÏνÓÉÏÔÊÐí´¦ÖõÄ?×î´óÒªÇóÊý¡£¶ÔÓÚÊÓÆµÁ÷£¬Í¨³£Ò»¸ö³¤ÏνÓÖ»·þÎñÓÚÒ»¸ö»òÉÙÊý¼¸¸öÊÓÆµÆ¬¶Î£¬Òò¶øÄܹ»ÉèÖÃÒ»¸ö½ÏµÍµÄÖµ£¬ÀýÈçkeepalive_requests100;£¬ÒÔÔ¤·Àµ¥¸öÏνӳ¤¹¦·òÕ¼ÓÃ×ÊÔ´¡£
TCPNODELAYÓëTCPCORK£ºtcp_nodelayon;:½ûÓÃNagleËã·¨£¬¼´ÔÊÐíÓ×Êý¾Ý°üµ±¼´·¢ËÍ£¬Ï÷¼õÑÓ³¤£¬Õâ¶ÔÓÚ±ØÒªÊµÊ±ÏìÓ¦µÄÊÓÆµÁ÷¼«¶ÈÓÐÀû¡£tcp_nopushon;(Linux):ÆôÓÃTCP_CORKÑ¡Ïî¡£
µ±?ÆôÓÃʱ£¬Nginx»á³¢ÊԹ鲢¶à¸öÓ׿éÊý¾Ý£¬¶øºóÔÚ·¢ËÍǰһ´ÎÐÔ·¢ËÍ£¬ÕâÄܹ»Ï÷¼õÍøÂç´«ÊäÖеİüÍ·¿ªÏú£¬Ìá¸ß´«ÊäЧÄÜ£¬ÓÈÆäºÏÓÃÓÚ´«Êä´óÎļþ¡£
»º´æÊÇÌáÉýÊÓÆµ½Ó¼û¿ìÂÊ¡¢½µµÍÔ´·þÎñÆ÷ѹÁ¦µÄ¹Ø¼ü¡£NginxÌṩÁË׳´óµÄ»º´æÖ°ÄÜ£¬ºÏÀíÅäÖÿÉÄÜÏÔÖøÌáÉýÓû§ÂÄÀú¡£
proxycacheÓëfastcgicache£ºproxy_cache_path:½ç˵»º´æÇøÓòµÄ?õè¾¶¡¢´óÓס¢ÎļþÊýµÈ²ÎÊý¡£ÀýÈ磺nginxproxy_cache_path/data/nginx/cachelevels=1:2keys_zone=my_cache:100mmax_size=10ginactive=60muse_temp_path=off;levels:Ö¸¶¨»º´æÄ¿Â¼µÄ²ã¼¶£¬ÓÐÀûÓÚÌá¸ßĿ¼²éÕÒЧÄÜ¡£
keys_zone:½ç˵»º´æµÄ¹²ÏíÄÚ´æÇøÓòÃû³ÆºÍ´óÓס£max_size:»º´æµÄ×î´óÈÝÁ¿¡£inactive:Ö¸¶¨»º´æÎļþÔڶ೤¹¦·òÄÚδ±»½Ó¼ûºó½«±»É¾³ý¡£use_temp_path=off:½¨ÒéÉèÖÃΪoff£¬Ô¤·À²»ÓÃÒªµÄһʱÎļþ¿½±´£¬Ìá¸ß»úÄÜ¡£
proxy_cache:ÆôÓÃÖ¸¶¨µÄ»º´æÇøÓò¡£proxy_cache_key:½ç˵ÓÃÓÚÌìÉú»º´æ¼üµÄ?±í°×ʽ£¬Í¨³£Ô̺¬ÒªÇóµÄURL¡¢HostµÈÐÅÏ¢¡£proxy_cache_valid:Ö¸¶¨²»?ͬHTTP״̬ÂëµÄ»º´æ¹¦·ò¡£ÀýÈ磬proxy_cache_valid20030210m;°µÊ¾½«×´Ì¬ÂëΪ200ºÍ302µÄÏìÓ¦»º´æ10·ÖÖÓ¡£
»º´æÔ¤ÈÈ(CacheWarming)£º¶ÔÓÚÐÂÉÏÏß»ò¸üеÄÊÓÆµÄÚÈÝ£¬Äܹ»Ê¹Óþ籾»òµÚÈý·½¹¤¾ßÌáǰ½«ÕâЩÄÚÈݼÓÔØµ½?Nginx»º´æÖУ¬ÒÔÈ·±£Óû§ÔÚµÚÒ»¹¦·ò½Ó¼ûʱҲÄÜ»ñµÃÓÅÁ¼µÄÂÄÀú¡£CDNÕûºÏ£ºNginx»¹Äܹ»×÷ΪCDN£¨ÄÚÈÝ·Ö·¢ÍøÂ磩µÄ±ßÔµ½Úµã£¬¹²Í¬ÆäËûCDN·þÎñÉÌ£¬½«ÊÓÆµÄÚÈÝ·Ö·¢µ½È«Çò¸÷µØµÄ·þÎñÆ÷ÉÏ£¬½øÒ»²½Ëõ¶ÌÓû§½Ó¼ûÑÓ³¤£¬ÌáÉýÕûÌå·Ö·¢Ð§ÄÜ¡£
µ±ÊÓÆµÁ÷Á¿¼¤Ôöʱ£¬µ¥Ò»·þÎñÆ÷ÄÑÒÔ½ÓÊÜ¡£NginxµÄ¸ºÔØÆ½ºâÖ°ÄÜ¿ÉÄܽ«Á÷Á¿·Ö·¢µ½¶ą̀ºó¶Ë·þÎñÆ÷£¬Ìá¸ßϵͳµÄ¿ÉÓÃÐÔºÍÍÌÍÂÁ¿¡£
upstreamÄ£¿é£ºnginxupstreamvideo_servers{server192.168.1.10:8080;server192.168.1.11:8080;server192.168.1.12:8080backup;#±¸·Ý·þÎñÆ÷}¸ºÔØÆ½ºâËã·¨£ºNginxÖ§³Ö¶àÖÖ¸ºÔØÆ½ºâËã·¨£¬ÈçÂÖѯ(roundrobin£¬Ä¬ÈÏ)¡¢¼ÓȨÂÖѯ(weightedroundrobin)¡¢IP¹þÏ£(ip_hash)µÈ¡£
¶ÔÓÚÊÓÆµ·þÎñ£¬Í¨³£Ñ¡ÔñÂÖѯ»ò¼ÓȨÂÖѯ£¬Æ¾¾Ý·þÎñÆ÷µÄÏÖʵ´¦ÖÃÄÜÁ¦½øÐзÖÅä¡£½¡È«²é³£ºNginxÄܹ»Í¨¹ýhealth_check(µÚÈý·½Ä£¿é)»òÆäËû·½Ê½ÊµÏÖ¶Ôºó¶Ë·þÎñÆ÷µÄ½¡È«²é³£¬µ±Ä³¸ö·þÎñÆ÷³öÏÖ¹ÊÕÏʱ£¬×Ô¶¯½«Æä´Ó¸ºÔØÆ½ºâ³ØÖÐÒÆ³ý£¬È·±£·þÎñµÄ¿ÉÓÃÐÔ¡£
HTTP/2&HTTP/3£ºÔÚNginxÅäÖÃÖÐÆôÓÃHTTP/2»òHTTP/3ºÍ̸£¬Äܹ»ÏÔÖøÌáÉýÊÓÆµ¼ÓÔØ¿ìÂÊ£¬ÓÈÆäÊÇÔÚÍøÂçǰÌáÇ·°²µÄÇé¿öÏ¡£nginxlisten443sslhttp2;AdaptiveBitrateStreaming(ABS)£º¶ÔÓÚÖ±²¥ºÍµã²¥£¬Ö§³ÖHLS»òDASHÌåʽµÄABS¼¼ÊõÖÁ¹Ø³ÁÒª¡£
NginxÄܹ»Í¨¹ýÅäÖÃngx_http_vhost_traffic_status_moduleµÈÄ£¿é£¬»ò¹²Í¬ffmpegµÈ¹¤¾ß£¬ÊµÏÖÊÓÆµµÄתÂëºÍ·Ö·¢£¬Îª·ÖÆçÍøÂç´ø¿íµÄÓû§Ìṩ×î¼ÑµÄ?ÅÔ¹ÛÂÄÀú¡£GzipѹËõ£º¹ÌÈ»ÊÓÆµÎļþ×ÔÉíÒÑѹËõ£¬µ«¶ÔÓÚÎı¾ÀศÖúÎļþ£¬¿ªÆôGzipѹËõÒÀÈ»ÄÜ½Ú¼ó´ø¿í£¬¼Ó¿ì¼ÓÔØ¿ìÂÊ¡£
nginxgzipon;gzip_varyon;gzip_proxiedany;gzip_comp_level6;gzip_typestext/plaintext/cssapplication/jsonapplication/javascripttext/xmlapplication/xmlapplication/xml+rsstext/javascript;
SSL/TLS¼ÓÃÜ£ºÎªÊÓÆµ´«ÊäÆôÓÃSSL/TLS¼ÓÃÜ£¬±£»¤Óû§Êý¾Ý°²È«£¬³ÉÁ¢ÐÅÀµ¡£½Ó¼û½ÚÔ죺ÉèÖÃIP½Ó¼ûÏÞ¶È¡¢Referer²é³µÈ£¬Ô¤·Àδ¾ÊÚȨµÄ½Ó¼ûºÍµÁÁ´¡£¼à¿ØÓëÈÕÖ¾£ºÀûÓÃNginxµÄ?½Ó¼ûÈÕÖ¾ºÍÃýÎóÈÕÖ¾£¬½áºÏµÚÈý·½¼à¿Ø¹¤¾ß(ÈçPrometheus,Grafana)£¬ÊµÊ±¼à¿Ø·þÎñÆ÷»úÄÜ¡¢ÏνÓÊý¡¢Á÷Á¿µÈ¹Ø¼üÖ¸±ê£¬ÊµÊ±·¢Ïֺͽâ¾öDZÔÚÎÊÌâ¡£
ngx_http_vhost_traffic_status_moduleÄ£¿éÄܹ»Ìṩ¾ßÌåµÄÁ÷Á¿Í³¼ÆÐÅÏ¢¡£
ͨ¹ýÒÔÉÏ¶à·½ÃæµÄ¾«ÃÜ»¯ÅäÖúÍÓÅ»¯£¬Nginx¿ÉÄÜÕæÕý¿ªÊÍÆäÔÚÊÓÆµ´«ÊäÁìÓòµÄÈ«ÊýDZÁ¦£¬ÊµÏÖ¡°Nginx100%ÊÓÆµ100%»úÄÜ¡±µÄÖ¸±ê¡£´Ó»ù´¡¼Ü¹¹µ½Ö÷ÌâÖ°ÄÜ£¬ÔÙµ½¸ß¼¶ÓÅ»¯Õ½Êõ£¬NginxΪ¹¹½¨¸ß»úÄÜ¡¢¸ß¿ÉÓᢿÉÀ©´óµÄÁ÷ýÌåÆ½Ì¨ÌṩÁË׳´óµÄ¼¼ÊõÖ§³Ö£¬ÈÃÓû§¾¡ÏíË¿»¬Á÷³©µÄ³¬·²ÊÓÆµÂÄÀú¡£
Õâ²»½ö½öÊǼ¼ÊõµÄ³É¹¦£¬¸üÊǶÔÓû§ÂÄÀú¼«ÖÂ×êÓªµÄÌåÏÖ¡£