mod_geo для nginx
Igor Sysoev
is at rambler-co.ru
Tue Feb 1 11:51:19 MSK 2005
On Mon, 31 Jan 2005, Andrew Kopeyko wrote:
> On Sun, 30 Jan 2005, Igor Sysoev wrote:
>
>> Да, планирую, более того, он уже частично сделан.
>> Формат такой же, синтаксис несколько отличается. Директива такая:
>>
>> 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
More information about the nginx-ru
mailing list