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

Grigory Batalov bga at tepkom.ru
Thu Mar 2 15:56:38 MSK 2006


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

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

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





More information about the nginx-ru mailing list