2012-08-12 2 views
0

Я пытаюсь выполнить аутентификацию нескольких местоположений вместе с proxy_pass в Nginx. Конфигурации Nginx заключается в следующем:Несколько аутентификаций вместе с прокси Nginx

server { 
    listen  443; 
    server_name example.com; 

    location /hg/ { 
     rewrite  ^/hg/(.*)$ /$1 break; 
     proxy_pass http://127.0.0.1:8001; 

     auth_basic   "hg"; 
     auth_basic_user_file hg.htpasswd; 

     location /hg/repo1/ { 
      auth_basic   "hg-repo1"; 
      auth_basic_user_file repo1.htpasswd; 
     } 

     location /hg/repo2/ { 
      auth_basic   "hg-repo2"; 
      auth_basic_user_file repo2.htpasswd; 
     } 
    } 
} 

аутентификации работает нормально, но прокси-сервер сломается во вложенных местах (repo1, repo2). Кажется, что конфигурация proxy_pass не наследуется. Итак, Nginx возвращает 404 (on/hg/repo1 и/hg/repo2).

Любые подсказки?

ответ

1

Вам необходимо повторить proxy_pass для каждого блока location.

Кроме того, нет функции для гнездования блоков location. Обычно они не вложены.