[PATCH] limit_req_status: allow status response to be as low as 200

J Carter jordanc.carter at outlook.com
Thu Jan 12 21:35:59 UTC 2023


It's trivial to do with error page OP as mentioned - an example:

     limit_req_status 598;
     limit_req_zone $binary_remote_addr zone=a:1m rate=1r/m;

     server {
         limit_req zone=a nodelay;

         error_page 598 = @send-204;

         location / {
                ...
         }

         ...

         location @send-204 {
                 return 204;
         }
     }

error_page's '=' can also be set to 204, and the named location contain 
nothing at all (whatever you prefer).

On 12/01/2023 17:11, Maxim Dounin wrote:
> Hello!
>
> On Thu, Jan 12, 2023 at 05:16:21AM -0800, Christopher Liebman wrote:
>
>> Not with 204.
>> This works quite well with a partner that has an aversion to errors when
>> they run over the limit:
>> limit_req_status 204;
> Indeed, 204 happens to be one of the two 2xx codes which can be
> returned directly, as they are handled in
> ngx_http_finalize_request() to facilitate simpler
> code in the dav module.  This is not what your patch enables
> though.  For all other codes, except 204 and 201 mentioned above,
> just returning them will simply break things.
>
> As already suggested, proper behaviour for all the codes can be
> easily configured by using the "error_page" directive.
>
> Hope this helps.
>


More information about the nginx-devel mailing list