ПРОЕКТЫ 


  АРХИВ 


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: Вложенные секции location



On Thu, 2 Mar 2006, Grigory Batalov wrote:

Можно ли внутри одного location определить другой location,
и чтобы при этом указанные ранее параметры наследовались
из первого во второй?

Хочу добиться следующего:

       location /projects/ {
               fastcgi_pass    localhost:1027;
               fastcgi_param   SCRIPT_NAME     /projects;

               if ($fastcgi_script_name ~ "^/projects(.*)$") {
                       set     $path_info      $1;
               }

               fastcgi_param   PATH_INFO       $path_info;
               fastcgi_param   QUERY_STRING    $query_string;
               fastcgi_param   REQUEST_METHOD  $request_method;
               fastcgi_param   CONTENT_TYPE    $content_type;
               fastcgi_param   CONTENT_LENGTH  $content_length;

                location ~ "^/projects/.*/login$" {
                auth_basic      "Trac projects";
                auth_basic_user_file    /etc/trac/htpasswd;
                }
       }

Т.е. при запросах /projects/pr1/login просить авторизоваться.

Однако, указанный выше пример не работает: nginx ищет страницу
/html/projects/pr1/login вместо передачи FastCGI-серверу.
Т.е. внутри второй секции location требуется повторить все
предыдущие директивы fastcgi_*.

В итоге я вынес второй location уровнем выше и всё продублировал.
Но это не очень удобно, на мой взгляд.

Наследование конфигураций во вложенных location'ах на данный момент
поддерживаются частично и потому они недокументированы. Не поддерживаются
как минимум директивы alias, proxy_pass и fastcgi_pass.



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



 




Copyright © Lexa Software, 1996-2009.