与Nginx代理一起进行多重身份验证

时间:2012-08-12 20:48:08

标签: mercurial proxy nginx hgweb proxypass

我正在尝试在Nginx中与proxy_pass一起验证多个位置。 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(在/ hg / repo1和/ hg / repo2上)。

任何提示?

1 个答案:

答案 0 :(得分:1)

您需要为每个proxy_pass块重复location

此外,没有嵌套location块的功能。通常它们不是嵌套的。