【问题标题】:Changing the default Gitlab port更改默认 Gitlab 端口
【发布时间】:2016-07-24 09:02:17
【问题描述】:

我已经通过 Omnibus 包在 CentOS 7(全新安装)上安装了最新的 Gitlab-CE (8.10),如下所述:https://about.gitlab.com/downloads/#centos7

现在,我想更改可以访问 Gitlab Web 界面的默认端口。为此,我按照http://docs.gitlab.com/omnibus/settings/nginx.html#change-the-default-port-and-the-ssl-certificate-locations的说明进行操作,即我收录了

external_url "http://127.0.0.1:8765"

在配置文件/etc/gitlab/gitlab.rb中,然后用gitlab-ctl reconfigure && gitlab-ctl restart更新配置。

但是,当我导航到 http://127.0.0.1:8765 时,Gitlab 会一直重定向到 http://127.0.0.1/users/sign_in,即端口规范以某种方式被丢弃。然后,当我手动将浏览器中的 URL 更改为 http://127.0.0.1:8765/users/sign_in 时,它会正确显示登录页面,有趣的是,页面上的所有链接(例如“探索”、“帮助”)都包含端口规范。

为了解决此问题,是否有必要在/etc/gitlab/gitlab.rb 以外的其他地方指定端口?

【问题讨论】:

  • 奇怪:gitlab.com/gitlab-org/gitlab-ce/merge_requests/1210/diffs 应该已经修复了这个重新正确配置的标题? (docs.gitlab.com/omnibus/settings/…)
  • @VonC 很有趣,根据你的建议,我只是取消了 /etc/gitlab/gitlab.rbnginx['proxy_set_headers'] 的默认设置的注释(另外,将 X-Forwarded-Proto 更改为 http 并删除 X-Forwarded-Ssl)突然间作品!我一定误解了文档,它似乎表明唯一需要修改的是external_url
  • 干得好!我添加了一个答案,以使文档的特定部分更加可见。
  • 太好了,谢谢!虽然我不得不承认我不完全理解为什么需要这一步(我没有使用反向代理) - https 示例的文档(将端口从 443 更改为 2443)指出可以设置 external_url "https://gitlab.example.com:2443"没有任何(证书除外)进一步修改

标签: gitlab


【解决方案1】:

这里的问题:https://gitlab.com/gitlab-org/gitlab-ce/issues/20131 解决方法: 将此行添加到 /etc/gitlab/gitlab.rb:

nginx['proxy_set_headers'] = { "X-Forward-Port" => "8080", "Host" => "<hostname>:8080" }

将端口和主机名替换为您的值,然后以 root 身份或使用 sudo:

gitlab-ctl reconfigure
gitlab-ctl restart

它在 Debian 8.5 上对我有帮助,来自 gitlab repo 的 gitlab-ce。

【讨论】:

【解决方案2】:

除了external_url,文档建议设置一些NGiNX代理头:

默认情况下,当您指定external_url 时,omnibus-gitlab 将设置一些在大多数环境中被认为是正常的 NGINX 代理标头。

例如omnibus-gitlab会设置:

"X-Forwarded-Proto" => "https",
"X-Forwarded-Ssl" => "on"

(如果您在 external_url 中指定了 https 架构)。

但是,如果您的 GitLab 处于更复杂的设置中例如在反向代理后面,您将需要调整代理标头以避免错误,例如您想要的更改被拒绝或无法验证 CSRF 令牌真实性已完成 422 无法处理。

这可以通过覆盖默认标题来实现,例如。在/etc/gitlab/gitlab.rb中指定:

 nginx['proxy_set_headers'] = {
  "X-Forwarded-Proto" => "http",
  "CUSTOM_HEADER" => "VALUE"
 }

保存文件并reconfigure GitLab 以使更改生效。

这样你可以指定任何你需要的 NGINX 支持的头文件。

OP ewcz 确认in the comments

我刚刚取消了/etc/gitlab/gitlab.rbnginx['proxy_set_headers'] 的默认设置的注释(另外,将X-Forwarded-Proto 更改为http 并删除了X-Forwarded-Ssl),突然就可以了!

【讨论】:

    猜你喜欢
    • 2011-10-31
    • 2013-11-30
    • 1970-01-01
    • 2014-08-29
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    相关资源
    最近更新 更多