The documentation here has an explanation that sounds like what you want to know:
The directive specifies the zone
(zone) and the maximum possible bursts
of requests (burst). If the rate
exceeds the demands outlined in the
zone, the request is delayed, so that
queries are processed at a given speed
From what I understand, requests over the burst will be delayed (take more time and wait until they can be served), with the
nodelay options the delay is not used and excess requests are denied with a 503 error.
This blog post (archive.org) gives good explanation how the rate limiting works on nginx:
If you’re like me, you’re probably wondering what the heck burst
really means. Here is the trick: replace the word ‘burst’ with
‘bucket’, and assume that every user is given a bucket with 5 tokens.
Every time that they exceed the rate of 1 request per second, they
have to pay a token. Once they’ve spent all of their tokens, they are
given an HTTP 503 error message, which has essentially become the
standard for ‘back off, man!’.