Да, планирую, более того, он уже частично сделан.
Формат такой же, синтаксис несколько отличается. Директива такая:
geo geo0 3 {
include iplist;
127.0.0.0/30 7;
}
[ ... ]
if ($geo0) {
rewrite - /internal/forbidden.html last;
}
А в какие сроки можно ожидать такой функциональности:
server {
listen 80;
geo good_networks 1 {
include /path/to/netlist;
127.0.0.0/30 7;
}
if ( not $good_networks ) {
limit_rate 100k;
}
location / {
root /path/to/docroot;
}
}
То есть для сетей, не входящих в некий список, мы ограничиваем скорость
отдачи контента - чтоб много не накачали.
Именно этот конфиг на данный момент сложно реализовать эффективно.
Можно будет сделать такой:
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.
Кстати, значение geo по умолчанию я решил задавать в списке адерсов:
default 0;
внутри оно выглядит как
0.0.0.0/0 0;
Игорь Сысоев
http://sysoev.ru