обращатся в бд на каждом запросе, чтобы его посчитать - это не лучший способ по многим причинам (нагрузка, подержка вашего самописного рэйтлимита и еше тысяча). почитайте
https://www.nginx.com/blog/rate-limiting-nginx/
или тут
nginx.org/ru/docs/http/ngx_http_limit_req_module.html и скорее всего этого хватит с головой.
можно зиспользовать 1 nginx как loadbalancer, можно настроить на каждом из nginx.