Mercurialリポジトリにサービスを提供するようにnginxを設定しています。基本認証をまったく使用していない場合、または基本認証を全面的に使用している場合に機能します。
私がやりたいのは、POSTリクエストで基本認証を使用することです。これにより、誰でもプルアクセスが可能になりますが、プッシュできるのは認証されたユーザーのみです。
私は以下を試しました、
if ($request_method = POST) {
auth_basic "Restricted";
auth_basic_user_file /path/to/userfile
}
ただし、「auth_basicディレクティブはここでは許可されていません」と文句を言います。
どうすればこれを解決できますか?
limit_except GET HEAD {
auth_basic 'Restricted';
auth_basic_user_file /path/to/userfile;
}
Nginx 0.8.48以降で機能しますが、古いバージョンではfastcgi_pass
はlimit_exceptブロック内で継承されませんでした。