ky0, о, я что-то не обратил внимания.
С другой стороны сделать валидацию и получение данных из JWT токена не очень сложно, можно наверное даже на встроенном njs написать. Ну или на той же гошечке + auth_request
Но погодите, limit_req это именно «лимит», т.е. число после которого серверу станет плохо, а не среднее количество запросов которое реально приходит.
Так что если вы знаете что на 800 сервер начинает троттлить, то надо поставить 750 лимита и сколько-то (допустим 50) бурста что бы несколько одновременных запросов не ломались.
Ну вот тут опять вопрос что понимается под «600 r/s»
Что я в него одномоментно зашлю 600 запросов, а потом через секунду ещё 600.
Или что я более-менее равномерно в течении секунды буду засылать 600 запросов (примерно по запросу каждые 1.6ms).
В общем, для начала стоит подумать, а правда ли это является узким местом.
И вообще, как часто случаются ошибки? Что происходит, если нет ошибки? Если всё-равно тот же json.Unmarshal, то непонятно что мы тут особо сэкономим…