ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mod_geo для nginx



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




 




Copyright © Lexa Software, 1996-2009.