94

我已经设置并且我们正在运行 GitLab v6.0.1 的默认安装(我们也即将升级)。这是一个“生产”设置,完全按照本指南进行操作:

https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

现在,我们如何安全地更改工作安装的 URL?

显然我们的 URL 很长,我们想出了一个新的 URL。我编辑了许多配置文件,“应用程序状态检查”报告一切正常。我已重新启动服务器以确保一切正常。

我可以通过我们原来的 SSL 访问 Nginx。我可以浏览 GitLab 站点、创建存储库等。我可以很好地分叉和提交。

一切似乎都还好;但是,由于这对我来说不是本地环境,所以我想仔细检查一下我是否已经完成了重命名 GitLab 站点的所有操作。

我编辑的文件是:

/etc/hosts
  127.0.0.1  localhost
  10.0.0.10  wake.domain.com    wake
  10.0.0.10  git.domain.com     git

/home/git/gitlab/config/gitlab.yml
  production: &base
    gitlab:
      host: git.domain.com

/home/git/gitlab-shell/config.yml
  gitlab_url: "https://git.domain.com"
  ^- yes, we are on SSL and that is working, even on a new URL

/etc/nginx/sites-available/gitlab
  server {
    server_name git.domain.com
4

5 回答 5

162

亚搏体育app综合

对于 Omnibus 安装,它有点不同。

Omnibus 安装中的正确位置是:

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

最后,您需要执行sudo gitlab-ctl reconfiguresudo gitlab-ctl restart以便应用更改。


我在错误的地方进行了更改,他们被吹走了。

不正确的路径是:

/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
/var/opt/gitlab/.gitconfig
/var/opt/gitlab/nginx/conf/gitlab-http.conf

请注意以下警告:

# This file is managed by gitlab-ctl. Manual changes will be
# erased! To change the contents below, edit /etc/gitlab/gitlab.rb
# and run `sudo gitlab-ctl reconfigure`.
于 2015-01-17T22:44:26.790 回答
29

你做的一切都是正确的!

您还可以更改电子邮件配置,具体取决于电子邮件服务器是否也是同一服务器。电子邮件配置位于gitlab.yml中,用于 GitLab 发送的邮件以及管理员电子邮件。

于 2013-10-19T11:13:13.180 回答
7

Actually, this is NOT totally correct. I arrived at this page, trying to answer this question myself, as we are transitioning production GitLab server from http:// to https:// and most stuff is working as described above, but when you login to https://server and everything looks fine ... except when you browse to a project or repository, and it displays the SSH and HTTP instructions... It says "http" and the instructions it displays also say "http".

I found some more things to edit though:

/home/git/gitlab/config/gitlab.yml
  production: &base
    gitlab:
      host: git.domain.com

      # Also edit these:
      port: 443
      https: true
...

and

/etc/nginx/sites-available/gitlab
  server {
    server_name git.domain.com;

    # Also edit these:
    listen 443 ssl;
    ssl_certificate     /etc/ssl/certs/somecert.crt;
    ssl_certificate_key /etc/ssl/private/somekey.key;

...
于 2014-01-15T02:35:57.177 回答
4

external_url更新中的参数后不要忘记清除缓存/etc/gitlab/gitlab.rb,否则您现有的项目克隆 URL 仍将显示您的旧主机名。

更改主机名的简单 3 步过程如下

  • 更新external_url参数/etc/gitlab/gitlab.rb
  • sudo gitlab-ctl reconfigure
  • sudo gitlab-ctl restart
  • sudo gitlab-rake cache:clear

参考:

https://forum.gitlab.com/t/clone-url-wont-change/21692/6

于 2021-01-14T08:35:06.213 回答
1

有详细的说明,这对我完全有帮助,位于此处

Jonathon Reinhart 已经回答了关键位,编辑/etc/gitlab/gitlab.rb,更改external_url然后运行sudo gitlab-ctl reconfigure; sudo gitlab-ctl restart

但是我需要更进一步,我上面链接的文档解释了它。所以我最终得到的结果是:

external_url 'https://gitlab.toilethumor.com'
nginx['ssl_certificate'] = "/www/ssl/star_toilethumor.com-chained.crt"
nginx['ssl_certificate_key'] = "/www/ssl/star_toilethumor.com.key"
nginx['proxy_set_headers'] = {
 "X-Forwarded-Proto" => "http",
 "CUSTOM_HEADER" => "VALUE"
}

上面,我已经明确声明了我的 SSL 好东西在这个服务器上的位置。这当然是紧随其后的

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

此外,当您将综合包切换到 https 时,捆绑的 nginx 将仅在端口 443 上提供服务。由于我的所有内容都是通过反向代理访问的,因此这部分可能很重要。

当我经历这个时,我搞砸了一些东西,它有助于找到实际的 nginx 日志,这引导我到那里:

sudo gitlab-ctl tail nginx
于 2016-10-02T16:45:02.143 回答