Nginx100%瑙?棰?100%i?ц?斤?娲???瑙?棰?浼?杈????ц?界?堕?锛?Nginx濡?浣???涓虹?村???
?ㄥ?浠?杩?涓???瀹逛负??????ユ?朵唬锛?瑙?棰?宸茬?舵??涓轰俊???????濞变?娑?璐圭??涓绘???浠?楂?娓??靛奖???ㄧ嚎璇剧??扮?存???????ㄦ?峰?瑙?棰???娴???搴﹀????杞介??搴︽????杩?涔????荤??瑕?姹?????涔????ョ???存?????″?ㄦ?ц?界??宸ㄥぇ????锛?濡?浣????藉?ㄦ捣??骞跺??璇锋?涓?锛?灏?楂?璐ㄩ????瑙?棰???瀹规?绉?绾у?版?ㄩ???板?ㄧ?????扮???ㄦ?锋??涓?????颁?涓???寮??????藉?ㄤ负杩?涓?????ユ???︽?筹???Nginx锛?杩?涓?互楂?????绋冲???绉扮??Web???″???姝d互?跺己澶х???藉??锛?涓烘??浠???缁??轰?骞???Nginx100%瑙?棰?100%i?ц?解????澹?附?炬????
瑕???瑙?ginx濡?浣?瀹??版??浜虹??瑙?棰??ц?斤???浠??????瑕????借?棰?浼?杈???澶????с??瑙?棰???浠跺?寰?浣?绉??澶э?涓????捐?绋?涓???瑕?杩?缁?????颁?杈??版?????杩????崇??锛?
楂?甯﹀???姹?锛?灏ゅ?舵???ㄩ?娓?????K/8K瑙?棰???????浠?澶╋???涓??棰?娴???甯﹀????ㄥ???借揪?板???????充??惧??姣??规?绉??????″?ㄥ?椤诲?峰?澶???濡?姝ゅ法澶ф??????藉????浣?寤惰?????姹?锛??ㄦ?锋??寰???????绉?寮?????瑙?棰?锛?浠讳??挎?堕?寸??绛????寰??戒?瀵艰?寸?ㄦ?锋?澶便??寤惰???绱?Н???芥?ヨ???缃?缁?浼?杈??????″?ㄥ???浠ュ??纾???I/O绛?澶?涓???????
楂?骞娥?????澶???锛?涓?涓????ㄨ?棰??ㄩ?宄版?舵????戒??稿?????涓?涓????虫?扮?句????ㄦ?峰???惰????????″?ㄩ??瑕??藉?绋冲??版????濡?姝ゅ法澶х??骞跺??杩??ユ?帮?骞朵负姣?涓??ㄦ?锋??渚????????涓??存???????°??璺ㄥ?板??????锛??ㄦ?烽??甯??ㄧ??锛?濡?浣?纭??涓????扮??浣?缃????ㄦ?烽?借?借?峰??ヨ??????句?楠?锛?杩?灏遍??瑕?楂???????ュ?ㄥ??????藉????
浼?缁??????eb???″?ㄥ?ㄥ???杩?浜??????讹?寰?寰?浼???瑗?瑙?????CPU???ㄧ??椋???????瀛???灏姐??杩??ヤ腑????缃?缁??ュ?绛????灞¤?涓?椴?锛???缁?瀵艰?寸?ㄦ?蜂?楠??寸嚎涓?????
Nginx???稿?浼??匡?涓轰?瀹??解??100%瑙?棰?100%i?ц?解??锛?
Nginx涔???浠ヨ?藉?ㄨ?棰?浼?杈?棰???澶ф?惧?褰????锛?涓??剁???圭??璁捐???蹇靛??涓?绯诲??寮哄ぇ?????藉?涓???????瀹????稿?浼??夸??板?ㄤ互涓???涓??归???
浜?浠堕┍?ㄣ??寮?姝ラ???诲??舵??锛?杩???ginx??涓烘?稿???浼??裤??涓?浼?缁???杩?绋?/绾跨?妯″??涓???锛?Nginx???ㄤ?浠堕┍?ㄧ??寮?姝ラ???诲?I/O妯″????杩????崇??Nginx?ㄥ???澶ч??骞跺??杩??ユ?讹?涓?浼?涓烘?涓???ラ?藉??寤轰?涓??????杩?绋???绾跨?锛???????杩?涓?涓???灏?????涓?富杩?绋???宸ヤ?杩?绋?锛?楂????扮???????杩??ャ??
褰?涓?涓???ユ??I/O??浣?锛?濡?璇诲????浠舵???????版????讹?Nginx涓?浼????扮?寰?锛???????朵氦缁???浣?绯荤?澶???锛??跺??缁х画澶????朵?浜?浠躲??褰?I/O??浣?瀹????讹???浣?绯荤?浼?????ginx锛?Nginx?????ョ户缁????璇ヨ??ャ??杩?绉?妯″????澶у?伴??浣?浜?CPU????瀛???娑???锛?浣垮?Nginx?藉?浠ユ??浣???璧?婧????ㄥ???娴烽??骞跺??杩??ワ?涓鸿?棰?浼?杈???渚?浜???瀹????虹???
楂???????ラ??????浠舵???¤?藉??锛?瑙?棰???浠舵????¤川涓???????璧?婧???Nginx?ㄨ?璁′???灏变互楂??ц?界????????浠舵???¤???诲????瀹??藉??存?ュ???浠朵?纾????????扮?缁?锛?缁?杩?浜?搴??ㄧ?搴???浠??ワ?澶уぇ??楂?浜?浼?杈???????瀵逛?瑙?棰?杩?绉?澶ф??浠讹?Nginx??sendfile()绯荤?璋??ㄨ?藉?灏???浠舵?版???存?ヤ???浠舵??杩扮???灏??板??ュ?缂??插?猴??垮??浜????哥┖?村???ㄦ?风┖?翠??寸????ユ?版???疯????锛??捐??????浜?浼?杈???搴︼?骞堕??浣?浜?CPU璐????????
??瓒???缂?瀛??哄?讹?瑙?棰???缂?瀛?瀵逛??????ㄦ?蜂?楠??冲?抽??瑕???Nginx??渚?浜?寮哄ぇ??哥??缂?瀛????斤???互缂?瀛???ュ父?ㄧ??瑙?棰???浠躲??褰??ㄦ?疯?姹?涓?涓?凡缁?琚??瀛???瑙?棰??讹?Nginx??互?存?ヤ???瀛???纾?????渚????★???????娆¤?????绔?????浠?????澶у?扮缉?????搴??堕?达???杞讳???绔????″?ㄧ????????
??杩?绮剧???缃??瀛?绛??ワ?濡?缂?瀛??堕?淬??缂?瀛?????缂?瀛?澶辨???哄?剁?锛???互??????楂?缂?瀛???ュ?戒腑??锛???澶ю??稿???梆??″???ョ?瀛???浼??裤??
寮哄ぇ????ヨ?杞藉??琛¤?藉??锛??㈠?搴?澶х???ㄦ?烽??锛???涓????″?ㄥ?寰??句互??????Nginx寮哄ぇ??璐?杞藉??琛″???藉??互灏?浼?????ョ??瑙?棰?璇锋??????板??板??绔????″?ㄤ?锛??充娇???版???″?ㄥ?虹?版????锛?涔?涓?浼?褰卞???翠????$?????ㄦ?с??Nginx????澶?绉?璐?杞藉??琛$?娉?锛?濡?杞??(RoundRobin)??????杞??(WeightedRoundRobin)??IP??甯?(IPHash)绛?锛???互?规???????姹????╂??浼???????绛??ワ?纭??璧?婧???????稿???╃?ㄥ??璇锋???蹇?????搴???
HTTP/2??QUIC????锛?????Web????????灞?锛?HTTP/2??QUIC??璁???渚?浜?姣?HTTP/1.1?撮???浼?杈???????HTTP/2????猸?澶?璺????Multiplexing)锛???璁稿?ㄥ??涓?CP杩??ヤ????朵?杈?澶?涓??姹?????搴?锛???灏?浜?杩??ュ缓绔???寮???锛???浣?浜?寤惰???
QUIC??璁????轰?UDP锛?杩?涓?姝ヨВ?充?TCP????澶撮?诲????锛?骞跺??缃??TLS??瀵?锛?涓鸿?棰?浼?杈?甯︽?ヤ??翠???寤惰????撮????????с??Nginx瀵硅?浜??板??璁???????锛?涓哄??扳??100%瑙?棰?100%i?ц?解????渚?浜??????????
Part1?荤?锛?Nginx?????朵?浠堕┍?ㄧ??寮?姝ラ???诲??舵????楂???????????浠舵???°??寮哄ぇ??缂?瀛???璐?杞藉??琛¤?藉??锛?浠ュ??瀵规?板??璁???????锛?浠??规???瑙e?充?浼?缁?Web???″?ㄥ?ㄥ???楂?骞娥???????澶т?绉??棰???浠舵?剁???ц?界?堕???瀹??藉?浠ユ??浣???璧?婧?娑???锛???渚?绋冲???蹇???????????瑙?棰?浼?杈????★?涓哄??扳??Nginx100%瑙?棰?100%i?ц?解??濂?瀹?浜???瀹????虹???
?ㄦ?ヤ??ョ??Part2涓????浠??娣卞?ユ?㈣?濡?浣???杩??蜂?????缃???浼?????宸э?灏?Nginx??瑙?棰??ц?藉???ュ?版???淬??
Nginx100%瑙?棰?100%i?ц?斤?绮剧???璋?浼?锛?????ginx???ㄩ?ㄦ???/p>
??art1涓????浠?繁?ヤ?瑙d?Nginx?ㄦ?舵??璁捐????稿????戒?涓轰??藉???涓鸿?棰?浼?杈?棰?????浣间郊????浠?浠??ユ??寮哄ぇ???虹?杩?涓?瓒充互杈惧?扳??100%瑙?棰?100%i?ц?解????瑕???姝i????ginx???ㄩ?ㄦ??斤?瀹??版???存?????瑙?棰?浣?楠?锛?杩???瑕???浠??琛?涓?绯诲??绮剧???????缃???浼?????
杩?灏卞??涓轰?杈?楂??ц?借?杞﹁?琛?涓?涓???璋??★????借?瀹??ㄨ???涓?椋?椹般??
worker_processes锛?杩?涓???浠ゅ?冲?浜?Nginx???ㄥ?灏?涓?伐浣?杩?绋?????甯告???典?锛?灏??惰?缃?负CPU?稿??版????绋?澶?涓?浜?锛?渚?濡?锛?4??PU璁剧疆涓???8锛???互?????╃?ㄥ??稿????ㄧ??浼??裤??瀵逛?瑙?棰????″?ㄨ??瑷?锛???褰?澧???宸ヤ?杩?绋???互?村ソ?板???骞跺??I/O??
worker_connections锛?杩?涓???浠ゅ?涔?浜?姣?涓?伐浣?杩?绋??藉????跺???????澶ц??ユ?般??杩?涓??奸??瑕??规?????″?ㄧ????瀛???瀹???涓??¢??姹??ヨ?瀹???瑙?棰?娴?浼?杈???瑕?缁存???胯??ワ???姝よ?涓??奸??甯搁??瑕?璁剧疆寰?姣?杈?楂?锛?渚?濡?10240???撮???纭??ulimit-n锛???浠跺?ユ?????讹?涔??稿???楂?锛?浠ユ????楂?骞跺??杩??ャ??
proxy_cache_path锛?瀹?涔?浜?缂?瀛???瀛??ㄨ矾寰???澶у???缂?瀛?椤规?伴????????璁剧疆levels??互浼???缂?瀛??ユ?炬??????proxy_cache锛????ㄧ?瀛???proxy_cache_valid锛?璁剧疆涓???HTTP??搴?????缂?瀛??堕?淬??瀵逛?瑙?棰?璧?婧?锛???甯稿??互璁剧疆杈??跨??缂?瀛??堕?淬??
proxy_cache_key锛?瀹?涔?缂?瀛???????纭??涓鸿?棰?璧?婧??????????缂?瀛?????筐?????涓???瑙?棰?琚???璇??扮?瀛??颁?璧枫??add_headerX-Cache-Status锛??ㄥ??搴?澶翠腑娣诲??缂?瀛??舵??淇℃????逛究???у??璋?璇?缂?瀛??戒腑????proxy_cache_use_stale锛???璁稿?ㄧ?瀛?杩????讹?濡?????绔??????????浠??舵??渚?杩???缂?瀛?锛?淇?璇????$?????ㄦ?с??
HTTP/2锛???erver??涓?坊??listen443sslhttp2;?ュ????TTP/2??HTTP/2??澶?璺???ㄧ?规?у??互?捐????灏?瑙?棰?????浼?杈??剁??寤惰?锛?灏ゅ?舵???ㄦ???惧??琛????锛?濡?HLS??DASH锛????烘?????QUIC锛?QUIC???涓??村??杩?????璁???告?HTTP/2锛?瀹??ㄧ?缁?涓?绋冲???涓㈠????杈?楂??????典?琛ㄧ?版?翠匠??
Nginx姝e?ㄩ??姝ュ???瀵?UIC??????锛?浣????????介??瑕???杩?绗???规ā?????瑰??????ュ??般??????UIC??互涓鸿?棰?娴?浼?杈?甯︽?ユ?翠???寤惰????撮???绋冲??с??
gzipon;锛?????zip??缂╋???互??灏?????被??搴?锛?濡?HTML??JavaScript??CSS锛???澶у?锛?浠?????灏?浼?杈??堕?淬??brotlion;锛?Brotli???绉?姣?Gzip?撮???????ュ??缂╃?娉?锛?灏ゅ?堕???ㄤ???缂╂??????瀹广??濡??????″?ㄦ????Brotli妯″??锛???互浼???????浣跨??rotli?ヨ?峰??村ソ????缂╂??????
types??锛?纭????ime.types??浠朵腑姝g‘??缃??瑙?棰???浠剁被????charset锛???甯歌?棰???浠舵??韩涓???瑕???缂╋?浣?涓?涔??稿?崇?????版???????惧??琛ㄦ??浠跺??互杩?琛???缂┿??
tcp_nopushon;锛?寮????涓???椤瑰??互?ㄥ????澶翠俊????灏藉???藉??板??????浠跺??瀹癸???灏?????娆○???帮???楂???????tcp_nodelayon;锛?绂???agle绠?娉?锛?瀵逛???瑕?瀹??舵?т?杈???瑙?棰?娴?锛??抽??odelay??互??灏?寤惰???
keepalive_timeout锛?????璁剧疆?胯??ヨ??舵?堕?淬??瀵逛?瑙?棰?娴?锛?淇????胯??ュ??互?垮??棰?绻???杩??ュ缓绔??????甯︽?ョ??寮?????sendfileon;锛?纭??sendfile??浠ゅ凡?????杩???ginx楂???浼?杈???浠剁???抽????
CDN涓?Nginx??????锛???寤哄?ㄧ???х??瑙?棰?????缃?缁?
瑕?瀹??扳??100%瑙?棰?100%i?ц?解??锛?浠?浠?浼?????涓?ginx???″?ㄦ???杩?涓?澶??????ㄥ?ㄧ?????村??锛???瀹瑰????缃?缁?(CDN)???涓??????缁????????????Nginx浣?涓?DN???逛????稿????″?????????冲?抽??瑕???瑙??层??
灏辫?璁块????ㄦ?疯?姹?瑙?棰??讹?浼?琚??鸿?借矾?卞?扮?浠?浠???杩???CDN???广??Nginx?ㄨ?浜????逛???渚?楂??ц?界??瑙?棰????????★???澶у?扮缉????ㄦ?疯???欢杩???娴????歌浇锛?CDN灏?缁?澶ч?ㄥ??娴????????拌竟缂????癸??捐????杞讳?婧?绔???????锛?浣垮?婧?绔???互涓?娉ㄤ???渚?楂?璐ㄩ??????瀹癸???涓????瀵规捣??骞跺??璇锋???
缂?瀛?????锛?CDN???规?ユ??搴?澶х????甯?寮?缂?瀛?绯荤?锛??藉?缂?瀛?娴烽????瑙?棰???瀹广??Nginx??DN???逛???楂???缂?瀛?绛??ワ??藉?纭???ㄦ?疯?藉?蹇????颁???杩??????硅?峰??瑙?棰????ㄦ????瀹瑰????锛?瀵逛?涓?浜??ㄦ????????瑙?棰???瀹规????瑕?瀹??舵?存?扮?????惧??琛??Nginx??????浠g????璐?杞藉??琛¤?藉??锛???互????CDN?鸿?藉?板?璇锋??????版?绔?锛?骞跺??ㄥ??涓??寸???杩?琛?缂?瀛?锛?瀹??板?ㄦ????瀹圭????????
??100%瑙?棰?100%i?ц?解??骞堕??涓?韫磋??灏憋???????瑕???缁??????у??浼?????
Nginx?舵?????э?浣跨??tub_status妯″????绗???圭???у伐?凤?濡?Prometheus+Grafana锛??ュ??剁????ginx??杩??ユ?般??璇锋??般??娴?????缂?瀛??戒腑??绛??抽?????????ュ?????锛?瀹???????Nginx??璁块???ュ?????璇??ュ?锛????版??ㄧ???ц?界?堕?????璇???
????娴?璇?锛?瀹???杩?琛?????娴?璇?锛?妯℃??楂?骞跺???烘???璇?浼?ginx????ユ?胯浇?藉??锛?骞舵?规???璇?缁???杩?琛??稿???璋?浼???A/B娴?璇?锛??ㄨ?琛???澶ч??缃???存?讹???互????/B娴?璇????规?锛?灏?娴?????娴??颁?????缃???Nginx???″?ㄤ?锛???杩??版???姣??ラ?璇?浼?????????
Part2?荤?锛???杩?瀵?ginx??缃?????ョ簿缁???璋?浼?锛?????伐浣?杩?绋??????杩??ユ?般??缂?瀛?绛??ャ????璁?????浠ュ??TCP/IP???扮??浼???锛???浠???互??澶у?版????瑙?棰?浼????杈?????????灏?Nginx涓?CDN?????哥???锛???寤轰?涓?己澶х???ㄧ??瑙?棰?????缃?缁?锛??存????扳??100%瑙?棰?100%i?ц?解?????抽????
??猸?缁??????у??浼???锛?灏?纭??Nginx濮?缁?澶????浜???浣冲伐浣??舵??锛?涓虹?ㄦ?峰甫?ュ??????????娴???瑙?棰?浣?楠???Nginx100%瑙?棰?100%i?ц?斤?涓??????涓??ヤ???????姊︽?筹?????Е?????????板?锛?

