访问控制开启时,Gitlab 页面显示 503,获取访问令牌失败,并显示 http 到 https 重定向消息

访问控制开启时,Gitlab 页面显示 503,获取访问令牌失败,并显示 http 到 https 重定向消息

我在 Ubuntu 中设置了 Gitlab Omnibus (12.4.2-ee),并尝试在打开访问控制的情况下让 Gitlab Pages 工作。Gitlab Auth 页面后它总是返回 503。在关闭访问控制的情况下使用它就可以正常工作。

Gitlab 和 Gitlab Pages 都在同一台服务器上运行,其中 Gitlab 运行于https://gitlab.example.com以及页面https://pages.example.com

我正在使用 Apache 来服务网站,并且 Gitlab 的 nginx 未启用。

两者都启用了 SSL,并且 http 请求将通过 RewriteRule 重定向到 https。

我尝试过打开和关闭 inplace_chroot,但似乎没有问题。

经过一番挖掘,我发现当 Gitlab Pages 尝试从中检索令牌时https://gitlab.example.com/oauth/token,它会得到重定向响应并在那里停止。

错误gitlab-ctl tail显示如下:

{"error":"Post https://gitlab.example.com/oauth/token: Moved Permanently","host":"examplegroup.pages.example.com","level":"error","msg":"Fetching access token failed","path":"/auth","redirect_uri":"https://examplegroup.pages.example.com/example","state":"...","time":"2019-11-09T01:00:00Z"}

执行 curl POST 到https://gitlab.example.com/oauth/token返回的 json 响应与 Gitlab Pages Go 服务器获取的响应不同。

/var/log/apache2/other_vhosts_access.log

gitlab.example.com:80 46.137.245.184 - - [09/Nov/2019:01:00:00 +0000] "CONNECT gitlab.example.com:443 HTTP/1.1" 301 451 "-" "Go-http-client/1.1"

我猜想 Gitlab Pages 程序没有遵循给出的 301 代码?这可能是由于 Apache 或 /etc/gitlab/gitlab.rb 中的某些配置错误造成的吗?

答案1

原来是因为我启用了 gitlab_pages['http_proxy']。删除它可以解决问题。

相关内容