今天出現(xiàn)服務(wù)器接口經(jīng)常性返回不到數(shù)據(jù)本涕,偶爾能返回烹笔。查看服務(wù)器監(jiān)控,發(fā)現(xiàn)是服務(wù)器外網(wǎng)出帶寬被占滿了澄耍。服務(wù)器的出帶寬是5M噪珊,外網(wǎng)出包量每秒大概2500個,一個連接占用幾K到幾十K字節(jié)齐莲。
? ? 排查服務(wù)器業(yè)務(wù)痢站,發(fā)現(xiàn)某個接口A1并發(fā)突然變高,但是這個接口不是我們提供給客戶的接口选酗,僅僅是一個控制接口阵难。 所以解決方案,采取把這個的A1接口單獨一臺服務(wù)器F1一個域名Y1芒填,其余需要給客戶展示數(shù)據(jù)的接口A2一臺服務(wù)器F2另一個域名Y2呜叫,分流解決。其中還有一個問題是殿衰,需要兼容舊的版本的接口服務(wù)朱庆。這兒需要用到Nginx的rewrite功能。
? ? Nginx的重寫配置:
? ??location ^~ /directory/ {
#? ? ? ? ? ? ? ? proxy_pass https://localhost;
#? ? ? ? ? ? ? proxy_redirect https://localhost1/materialinfo https://localhost/materialinfo;
? ? ? ? ? ? ? ? rewrite ^/(.*) https://localhost/$1 redirect;
?? ? ? }
由于proxy_redirect重定向功能闷祥,接口還是走原來的服務(wù)器F1返回數(shù)據(jù)娱颊,實際上并不能使接口A2返回數(shù)據(jù)。而rewrite可以做到是服務(wù)器F2返回數(shù)據(jù)凯砍,從而可以分流解決箱硕。