目前有点破解,但试一试。
编辑您的 nginx 站点配置以添加/修改以下位置
location ^~ /api/v3/internal/allowed {
proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://gitlab;}
location / {
auth_basic "Gitlab Restricted Access";
auth_basic_user_file /home/git/gitlab/htpasswd.users;
# serve static files from defined root folder;.
# @gitlab is a named location for the upstream fallback, see below
try_files $uri $uri/index.html $uri.html @gitlab;
}
将您的 @gitlab 位置块保持原样。
诀窍是让 /api/v3/internal/allowd 绕过身份验证。如果您在执行 git pull / push 时查看日志,则会向服务器发出请求是否允许。在带有 htpasswd 的标准 nginx 配置中,该请求将被阻止,因为服务器不知道所需的身份验证。
无论如何,不确定是否有更好的选择(找不到),但这似乎对我有用。