Сделал так:
http {
(...)
geo $white{
default 0;
include /etc/white;
}
geo $black{
default 0;
include /etc/black;
}
limit_req_zone $binary_remote_addr zone=beta:10m rate=1r/s;
server {
(...)
error_page 418 = @php_limit;
location ~ \.php$ {
if ($black) {
return 418;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/hg/repos/hg.books.ilovexq.ru/pages$fastcgi_script_name;
include fastcgi_params;
}
location php_limit {
limit_req zone=black nodelay;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/hg/repos/hg.books.ilovexq.ru/pages$fastcgi_script_name;
include fastcgi_params;
}
}
Это срабатывает, но только для $black отдает 500 код:(