自建Gitlab在使用LFS出现的一个小问题

现象

在局域网内使用docker启动一个Gitlab实例,其中external_url设置为http://fqdn。外部使用Nginx反向代理到该实例的80端口,并向外提供HTTPS服务。

在使用git LFS上传文件时git提示file already closed

解决

根据GitHub上热心群众提供的方法,需要将external_url中的http改为https,以解决 file already closed 的问题。但是直接改为https则会出现浏览器提示Too Many Redirect,究其原因是容器中的Gitlab实例在发现external_url中的协议名为https时将会自动将80端口上的流量导回443端口上,如下图所示:

循环重定向

为此需要在GitLab的启动环境变量中增加对Gitlab重定向行为的修正,使之不发出重定向响应:

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

■QED

留下评论