我正在设置 nginx 以服务于 Mercurial 存储库。它在根本不使用基本身份验证或我完全使用基本身份验证时有效。
我想要做的只是在 POST 请求上使用基本身份验证,所以任何人都有拉取访问权限,但只有经过身份验证的用户才能推送。
我尝试了以下,
if ($request_method = POST) {
auth_basic "Restricted";
auth_basic_user_file /path/to/userfile
}
但是它抱怨“此处不允许使用 auth_basic 指令”。
我该如何解决这个问题?
你应该使用
limit_except
:它从 nginx 0.8.48 开始工作,在旧版本中存在一个错误,
fastcgi_pass
即未在 limit_except 块内继承。