nginx и MAP

Igor Sysoev is at rambler-co.ru
Tue Aug 5 20:25:35 MSD 2008


On Tue, Aug 05, 2008 at 03:05:07PM +0400, open wrote:

> Игорь, спасибо за быстрый ответ, поясню
> 
> есть 2 табл.
> 
> 1.1.ru/aaa  public
> 2.2.ru/aaa  public
> 3.3.ru/ccc  public
> 
> ну те хостовая часть и урл произвольный
> 
> есть табл соотв внешнего и внутр.
> 
> 1.1.ru/aaa  9.9.lan/vvv/bbb/aaa
> 2.2.ru/aaa  8.8.lan/bbb/aaa
> 3.3.ru/ccc  9.9.lan/ссс
> 
> можно ли это реализовать на MAP,

Можно попровать так:

    map $test           $pass {
        default         NO;
        1.1.ru/aaa/     9.9.lan/vvv/bbb/aaa
        2.2.ru/aaa/     8.8.lan/bbb/aaa;
        3.3.ru/ccc/     9.9.lan/ссс;
    }

    server {

        set  $test  "$host$uri";

        if ($pass = NO) {
            return 403;
        } 

        location / {
            proxy_pass http://$pass;
        }


> и еще Игорь, возможны ли map с произвольным именем или нет?

В первой части должно быть имя существующей переменной, во второй - любое.

> Igor Sysoev wrote:
> >On Mon, Aug 04, 2008 at 03:39:47PM +0400, open wrote:
> >
> >  
> >>Доброе время суток.
> >>Не подскажет ли уважаемое коммунити.
> >>Можно ли в nginx создавать map с произвольным именем и переменной ?
> >>
> >>те есть создать массив,
> >>содержащий внешний УРЛ и соотв. true или false.
> >>и соотв если текущему УРЛ соот true проксировать его на бекэенд, если 
> >>false по показать 403.
> >>    
> >
> >http://sysoev.ru/nginx/docs/http/ngx_http_map_module.html
> >
> >     map $uri  $no {
> >         default   1;
> >         /aaa/     0;
> >         /bbb/     0;
> >         /403/     0;
> >     }
> >
> >     server {
> >
> >         if ($no) {
> >             return 403;
> >         } 
> >
> >         location / {
> >             proxy_pass ...
> >         }
> >
> >         location /403/ {
> >             root  /path/to/403;
> >         }
> >
> >     }
> >
> >
> >  

-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list