首页 > 解决方案 > Gitlab:在没有证书的情况下将外部网址设置为 https

问题描述

我在一个 docker 容器中运行一个 gitlab ce 服务器,在一个虚拟服务器上运行其他 docker 容器。我在另一个 docker 容器中使用 nginx 作为反向代理。仅从主机转发反向代理的端口,反向代理将请求转发到其他容器。对端口 80 的反向代理的所有请求都重定向到端口 443。反向代理管理 ssl。从反向代理到 gitlab 的连接在端口 80 上,我没有 gitlab 容器的证书。现在我想在 gitlab.rb 中设置 external_url。当我设置为http://my.domain.com(已被注释掉)时,它可以工作。当我设置为https://my.domain.com时,我无法打开该页面。我得到“很多重定向”。是否可以在不向该容器添加证书的情况下将 external_url 设置为 https?

标签: gitlab

解决方案


GitLab 的NGINX 设置页面解释了如何设置这个通用配置:

默认情况下 NGINX 会自动检测是否使用 SSL if external_url contains https://。如果您在反向代理后面运行 GitLab,您可能希望在另一个代理服务器或负载均衡器上终止 SSL。为此,请确保external_url包含https://并将以下配置应用于gitlab.rb

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

听起来您可能缺少上面的两个附加配置选项。


推荐阅读