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