我正在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?
答案 0 :(得分:2)
GitLab的NGINX settings页介绍了如何设置此通用配置:
默认情况下,如果
external_url
,NGINX将自动检测是否使用SSL 包含https://
。如果您在反向代理后面运行GitLab, 您可能希望在其他代理服务器上终止SSL或加载 平衡器。为此,请确保external_url
包含https://
并且 将以下配置应用于gitlab.rb
:nginx['listen_port'] = 80 nginx['listen_https'] = false
听起来您可能缺少上面的两个附加配置选项。