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

Igor Sysoev is at rambler-co.ru
Tue Mar 7 19:10:45 MSK 2006


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





More information about the nginx-ru mailing list