Nginxを実行しているArchLinuxサーバーで、cgitを正しくセットアップしました。1つのディレクトリを除いて、基本認証パスワードでcgitを保護したい/pub/
。ドキュメントに見られるように、私はコンテキストに認証を設定し、ディレクトリのコンテキストでserver
例外を取得することを考えました。パスを正しく取得するために、このリンクを試しました。location
/pub/
こちらが対応するパーツのnginxの設定ファイルです。
server {
listen 80;
server_name git.nicosphere.net;
index cgit.cgi;
gzip off;
auth_basic "Restricted";
auth_basic_user_file /srv/gitosis/.htpasswd;
location / {
root /usr/share/webapps/cgit/;
}
location ^~ /pub/ {
auth_basic off;
}
if (!-f $request_filename) {
rewrite ^/([^?/]+/[^?]*)?(?:\?(.*))?$ /cgit.cgi?url=$1&$2 last;
}
location ~ \.cgi$ {
gzip off;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index cgit.cgi;
fastcgi_param SCRIPT_FILENAME /usr/share/webapps/cgit/cgit.cgi;
fastcgi_param DOCUMENT_ROOT /usr/share/webapps/cgit/;
}
}
これにより、URLが何であれ認証を求められます。いくつかの簡単なテストのために、私は認証なしで、認証のみでrootを残そうとしました/pub/
。この場合、パスワードはまったく要求されません。これまでのところ、私はなんとかすべてまたは何も保護することができませんでした。
あなたの助けに感謝します、そして私のおおよその英語をお詫びします。