当我制作 Eclipse -> 文件 -> 导入 -> 项目 -> 来自 Git 的项目 -> 克隆 URI -> 从 Gitlab 输入存储库 HTTPS URI 时,出现错误:
可能原因:
URL 不正确
没有网络连接(例如代理设置错误)
SSL 主机无法验证(在 Git 配置中设置 http.sslVerify=false)
我已经http.sslVerify false
在 Eclipse 配置中添加了,但它仍然无法正常工作。
如果我git clone https://my.example.com/gitlab/root/repository.git
在 cmd 中进行,我会得到:
克隆到“存储库”...
致命:无法访问“ https://my.example.com/gitlab/root/repository.git ”:请求的 URL 返回错误:500
Gitlab 生产日志显示:
Projects::GitHttpController#info_refs 作为 HTML
参数处理:{"service"=>"git-upload-pack", "namespace_id"=>"java", "project_id"=>"project.git"}
完成 500 内部服务器102 毫秒内出错(ActiveRecord:2.5 毫秒)
JWT::DecodeError(Nil JSON Web 令牌):
lib/gitlab/workhorse.rb:120:in 'verify_api_request!'
app/controllers/projects/git_http_client_controller.rb:154:in 'verify_workhorse_api!'
lib/gitlab/request_profiler/middleware.rb:15:in 'call'
lib/gitlab/middleware/go.rb:16:in 'call'
SSH URL 运行良好。Gitlab 与 Apache2 和 HTTPS 一起使用。/etc/gitlab/gitlab.rb
包含:
external_url ' https://my.example.com/gitlab '
web_server['username'] = 'apache' #'gitlab-www'
web_server['group'] = 'apache' #'gitlab-www'
nginx['enable '] = 假
独角兽['listen'] = '127.0.0.1'
独角兽['port'] = 9099
/etc/apache2/apache2.conf
包含:
ProxyPass /gitlab http://127.0.0.1:9099/gitlab
ProxyPassReverse /gitlab http://127.0.0.1:9099/gitlab
RequestHeader add X-Forwarded-Proto https
使用的版本:
GitLab 8.14.5
GitLab Shell 4.0.3
GitLab Workhorse 1.1.1
GitLab API v3
Git 2.7.4
有关于类似问题的文章在 GitLab 上修复通过 HTTPS 进行克隆的问题,但修改/etc/gitlab/gitlab.rb
gitlab-workhorse 配置没有帮助。
类似问题: 使用 HTTP(S) 和 Apache 作为反向代理的 git 操作时出现错误 500
如何解决这个问题呢?
在 9191 端口上启用 gitlab-workhorse:
这就是整个 gitlab.rb 配置,其他行注释。
并
proxyPass
在/etc/apache2/apache2.conf
9191 端口而不是 Unicorn 上工作的 gitlab-workhorse: