今天出现服务器接口经常性返回不到数据,偶尔能返回。查看服务器监控,发现是服务器外网出带宽被占满了。服务器的出带宽是5M,外网出包量每秒大概2500个,一个连接占用几K到几十K字节。
排查服务器业务,发现某个接口A1并发突然变高,但是这个接口不是我们提供给客户的接口,仅仅是一个控制接口。 所以解决方案,采取把这个的A1接口单独一台服务器F1一个域名Y1,其余需要给客户展示数据的接口A2一台服务器F2另一个域名Y2,分流解决。其中还有一个问题是,需要兼容旧的版本的接口服务。这儿需要用到Nginx的rewrite功能。
Nginx的重写配置:
location ^~ /directory/ {
# proxy_pass https://localhost;
# proxy_redirect https://localhost1/materialinfo https://localhost/materialinfo;
rewrite ^/(.*) https://localhost/$1 redirect;
}
由于proxy_redirect重定向功能,接口还是走原来的服务器F1返回数据,实际上并不能使接口A2返回数据。而rewrite可以做到是服务器F2返回数据,从而可以分流解决。
网友评论