Когда я делаю Eclipse -> File -> Import -> Projects -> Projects from Git -> Clone URI -> вводю HTTPS URI репозитория из Gitlab, я получаю ошибку:
Возможные причины:
Неверный URL
Нет сетевого подключения (например, неправильные настройки прокси)
Хост SSL не может быть проверен (установите http.sslVerify = false в конфигурации Git)
я добавил 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 показывают:
Обработка проектами :: GitHttpController # info_refs как HTML
Параметры: {"service" => "git-upload-pack", "namespace_id" => "java", "project_id" => "project.git"}
Выполнено 500 внутренних ошибок сервера за 102 мс (ActiveRecord: 2,5 мс)
JWT :: DecodeError (веб-токен Nil JSON):
lib / gitlab / workhorse.rb: 120: в "verify_api_request!"
app / controllers / projects / git_http_client_controller.rb: 154: в 'verify_workhorse_api!'
lib / gitlab / request_profiler / middleware.rb: 15: в 'вызове'
lib / gitlab / middleware / go.rb: 16: в `вызове '
URL-адрес SSH работает хорошо. Gitlab используется с Apache2 и HTTPS. /etc/gitlab/gitlab.rb
содержит:
external_url 'https://my.example.com/gitlab'
web_server ['имя пользователя'] = 'apache' # 'gitlab-www'
web_server ['группа'] = 'apache' # 'gitlab-www'
nginx ['enable'] = ложь
единорог ['слушать'] = '127.0.0.1'
единорог ['порт'] = 9099
/etc/apache2/apache2.conf
содержит:
ProxyPass / gitlab http://127.0.0.1:9099/gitlab
ProxyPassReverse / gitlab http://127.0.0.1:9099/gitlab
RequestHeader добавить 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
Есть статья о подобной проблеме Устранение проблем с клонированием через HTTPS на GitLab но изменение /etc/gitlab/gitlab.rb
Конфигурация gitlab-workhorse не помогла.
Похожие проблемы: Ошибка 500 при операции git с использованием HTTP (S) с Apache в качестве обратного прокси
Как решить эту проблему?
Включен gitlab-workhorse на порту 9191:
external_url 'https://my.example.com/gitlab'
gitlab_workhorse ['включить'] = правда
gitlab_workhorse ['listen_network'] = "TCP"
gitlab_workhorse ['listen_addr'] = "127.0.0.1:9191"единорог ['слушать'] = '127.0.0.1'
единорог ['порт'] = 9099web_server ['external_users'] = ['www-данные']
web_server ['имя пользователя'] = 'apache' # 'gitlab-www'
web_server ['группа'] = 'apache' # 'gitlab-www'nginx ['enable'] = ложь
Вот и вся конфигурация gitlab.rb, остальные строчки прокомментированы.
И сделал proxyPass
в /etc/apache2/apache2.conf
gitlab-workhorse, работающему на порту 9191 вместо Unicorn:
ProxyPass / gitlab http://127.0.0.1:9191/gitlab
RequestHeader добавить X-Forwarded-Proto "https"
RequestHeader устанавливает X-Forwarded-Ssl на