Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Вложенные секции location
 
 
Здравствуйте!
Можно ли внутри одного 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 уровнем выше и всё продублировал.
Но это не очень удобно, на мой взгляд.
-- 
 Григорий Баталов,
 программист
 ЗАО "Ланит-Терком"
 
 |