据我所知,Nginx只能在配置文件中密码保护目录。这很好用,但对于 A)无法编辑配置的最终用户来说不是一个真正的选择, B)会破坏配置,如果他们可以
现在我正在考虑基于网络的目录结构表示,他们可以指向并点击 - 重写配置并重新杀死HUP-ing Nginx ...... 但不知怎的,整个想法感觉就像我要重写cPanel v0.0.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及更早版本可能是不行的