GitLab 总是重定向到 HTTPS

GitLab 总是重定向到 HTTPS

我想在 Apache 反向代理后面运行 GitLab。Apache 负责所有 SSL 工作。

我已经像这样配置了 gitlab.rb。

external_url 'https://gitlab.example.com'
nginx['listen_address'] = '192.168.178.63'
nginx['listen_port'] = 8888
nginx['listen_https'] = false
nginx['external_users'] = ['http']

但是当我在浏览器中输入 192.168.178.63 时,Gitlab 总是将我重定向到https://192.168.178.63但这是错误的,gitlab 的嵌入式 Web 服务器应该只使用 HTTP 来完成所有操作

问题是

external_url 'https://gitlab.example.com'

如果我将其改为

external_url 'http://gitlab.example.com'

一切正常,但它并不能解决我的问题,因为现在 gitlab 认为外部 URL 只是 HTTP 而不是 HTTPS。

我该如何取消这个重定向到 https?Gitlab 嵌入式 Web 服务器使用 http 和反向代理 SSL 来做所有事情

谢谢。

答案1

外部网址必须在 GitLab 中设置仅 http,https 将在你的反向代理上启用:

external_url 'http://gitlab.example.com'

进行更改后,不要忘记重新配置 Gitlab。

gitlab-ctl reconfigure

在您的反向代理设置中:

proxy_pass http://192.168.178.63:8888

答案2

即使您external_url使用 HTTPS 配置,GitLab 也支持反向代理。

external_url默认情况下,如果 Omnibus GitLab包含并配置 NGINX 以进行 SSL 终止,则会自动检测是否使用 SSL https://。但是,如果将 GitLab 配置为在反向代理或外部负载均衡器后面运行,则某些环境可能希望在 GitLab 应用程序之外终止 SSL。为此,请进行编辑/etc/gitlab/gitlab.rb以防止捆绑的 NGINX 处理 SSL 终止:

nginx['listen_port'] = 80
nginx['listen_https'] = false

文档更多细节。

相关内容