我在 nginx 上使用 cgit 运行 git 存储库浏览器。
打开索引页会导致No repositories found
显示错误而不是索引。我相信这是因为foo.bar/
被处理为foo.bar/cgit
,然后被解释为名为“cgit”的 git 存储库,而该存储库并不存在,因此出现错误。我不确定我在这里做错了什么。
我的 nginx 配置,删除了不相关的部分(例如 ssl 配置等),并清理了地址/路径以实现匿名:
server {
listen 80;
server_name git.foo.bar;
return 301 https://git.foo.bar$request_uri;
}
server {
listen 443 ssl http2;
server_name git.foo.bar;
#
# ssl configs here
#
location ~* ^.+\.(css|png|ico)$ {
root /foo/bar/htdocs;
expires 30d;
}
location / {
include fastcgi_params;
fastcgi_pass unix:/foo/bar;
fastcgi_index /;
fastcgi_param DOCUMENT_ROOT /foo/bar/htdocs;
fastcgi_param SCRIPT_FILENAME /foo/bar/cgit.cgi;
fastcgi_param PATH_INFO $uri;
fastcgi_param HTTP_HOST $server_name;
}
}
答案1
添加
rewrite /cgi / break;
块内部location /
解决了这个特殊的问题。