Nginx rate limiting: unknown directive limit_req_zone

nginxrate-limitingUbuntu

I'm trying to set up a rate limit for bots using my website, but if I add

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

or anything of the sort to /etc/nginx/nginx.conf in the http block, before the includes I get

user@srv:~$ sudo service nginx restart
Restarting nginx: nginx: [emerg] unknown directive "limit_req_zone" in /etc/nginx/nginx.conf:11

I can't figure out why this is or where else to look for issues…

Any help appreciated!

Best Answer

Either you are using an ancient version of nginx (< 0.7.21) or ngx_http_limit_req_module module is not compiled into your nginx build (which is a bit odd). Run nginx -V 2>&1 | grep --colour=auto limit to check if maybe it's been disabled at build.