NGINX:允许用户自己密码保护目录吗?

时间:2010-03-07 16:03:20

标签: hosting directory passwords nginx .htpasswd

据我所知,Nginx只能在配置文件中密码保护目录。这很好用,但对于 A)无法编辑配置的最终用户来说不是一个真正的选择, B)会破坏配置,如果他们可以

现在我正在考虑基于网络的目录结构表示,他们可以指向并点击 - 重写配置并重新杀死HUP-ing Nginx ...... 但不知怎的,整个想法感觉就像我要重写cPanel v0.0.1; - )

这里的任何人都有同样的问题,并提出了一个优雅和可维护的解决方案? 我完全控制了服务器。

谢谢!

1 个答案:

答案 0 :(得分:3)

你真的不希望用户更改配置,对吗? 对于密码保护,如果领域始终保持不变,则htpasswd文件就足够了。 并且nginx本身可以检查文件是否存在。 所以,这就是可以做的工作:

  location ~ ^/([^/]*)/(.*) {
        if (-f $document_root/$1/.htpasswd) {
                error_page 599 = @auth;
                return 599;
        }
  }
  location @auth {
        auth_basic "Password-protected";
        auth_basic_user_file $document_root/$1/.htpasswd;
  }

使用nginx-0.7.65为我工作。 0.6.x及更早版本可能是不行的