Nginx 如何限制每个客户端一次请求一个?

Nginx 如何限制每个客户端一次请求一个?,nginx,throttling,Nginx,Throttling,与ngx_http_limit_req_模块不同,我正在寻找一种方法来限制每个IP一次1个请求。换言之,如果上游应用服务器尚未响应上一个请求,Nginx应该444或429任何进一步的请求 直觉说,与ngx_http_limit_req_模块相比,这将节省内存,因为没有要递增的计数器 在某些情况下,例如机器人、暴力攻击等,上游应用服务器可能会选择故意保留请求,以获得10秒或10分钟的惩罚-但如果Nginx仍然允许用户并行发出请求,那么惩罚只是攻击者可以绕过的一堵墙 你可以用 但是,由于NAT在世界

与ngx_http_limit_req_模块不同,我正在寻找一种方法来限制每个IP一次1个请求。换言之,如果上游应用服务器尚未响应上一个请求,Nginx应该444或429任何进一步的请求

直觉说,与ngx_http_limit_req_模块相比,这将节省内存,因为没有要递增的计数器

在某些情况下,例如机器人、暴力攻击等,上游应用服务器可能会选择故意保留请求,以获得10秒或10分钟的惩罚-但如果Nginx仍然允许用户并行发出请求,那么惩罚只是攻击者可以绕过的一堵墙

你可以用


但是,由于NAT在世界上几乎所有ISP中的使用,您可能会面临一些问题

您不能这样做。原因很简单,在一个公共IP的背后,可以有一个巨大的NATted系统网络。@user902384这对我来说已经足够好了。如果不是,我以后会找到另一种方法。但我还是想试试。此外,ngx_http_limit_req_模块还基于IP进行节流。