Nginx HTTP返回状态码修改

由于在nginx配置中,设置了limit_req的流量限制,导致许多请求返回503错误代码,在限流的条件下,为提高用户体验,希望返回正常Code 200,且返回操作频繁的信息:

  1. location  /test {
  2.   …
  3.   limit_req zone=zone_ip_rm burst=1 nodelay;
  4.   error_page 503 =200 /dealwith_503?callback=$arg_callback;
  5. }
  6. location /dealwith_503{
  7.   set $ret_body ‘{“code”: “V00006″,”msg”: “操作太频繁了,请坐下来喝杯茶。”}’;
  8.    if ( $arg_callback != “” )
  9.    {
  10.        return 200 ‘try{$arg_callback($ret_body)}catch(e){}’;
  11.    }
  12.    return 200 $ret_body;
  13. }
0 Comments
Leave a Reply