ПРОЕКТЫ 


  АРХИВ 


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]

Вложенные секции location


  • To: nginx-ru@xxxxxxxxx
  • Subject: Вложенные секции location
  • From: Grigory Batalov <bga@xxxxxxxxx>
  • Date: Thu, 2 Mar 2006 15:56:38 +0300
  • Organization: TEPKOM

Здравствуйте!

Можно ли внутри одного 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 уровнем выше и всё продублировал.
Но это не очень удобно, на мой взгляд.

-- 
 Григорий Баталов,
 программист
 ЗАО "Ланит-Терком"



 




Copyright © Lexa Software, 1996-2009.