Именно этот конфиг на данный момент сложно реализовать эффективно.
Можно будет сделать такой:
geo good_networks {
default 0;
include /path/to/netlist;
127.0.0.0/30 7;
}
server {
location / {
root /path/to/docroot;
if (not $good_networks) {
limit_rate 100k;
}
}
}
То есть, на уровне сервера можно будет делать if (...) { rewrite ... },
а вот задавать помимо rewrite обычные директивы внутри if() можно будет
только на уровне location.
И ещё, geo задаётся только на уровне http.