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Ϊ¹¹½¨¸ßÐÔÄÜ¡¢¸ß¿ÉÓᢿÉÀ©Õ¹µÄ?Á÷ýÌåÆ½Ì¨ÌṩÁËǿʢµÄÊÖÒÕÖ§³Ö£¬ÈÃÓû§¾¡ÏíË¿»¬Á÷ͨµÄ?³¬·²ÊÓÆµÌåÑé¡£
Õâ²»µ«½öÊÇÊÖÒÕµÄʤÀû£¬¸üÊǶÔÓû§ÌåÑ鼫ÖÂ×·ÇóµÄÌåÏÖ¡£