由于在nginx配置中,设置了limit_req的流量限制,导致许多请求返回503错误代码,在限流的条件下,为提高用户体验,希望返回正常Code 200,且返回操作频繁的信息:
- location /test {
- …
- limit_req zone=zone_ip_rm burst=1 nodelay;
- error_page 503 =200 /dealwith_503?callback=$arg_callback;
- }
- location /dealwith_503{
- set $ret_body ‘{“code”: “V00006″,”msg”: “操作太频繁了,请坐下来喝杯茶。”}’;
- if ( $arg_callback != “” )
- {
- return 200 ‘try{$arg_callback($ret_body)}catch(e){}’;
- }
- return 200 $ret_body;
- }
0 Comments