引言

安装方法比较简单,重点想说的是gitlal里面自己带了nginx服务器,网上也有配置方法用本地的nginx来直接取代这个nginx,但是我不想搞的那么复杂,也怕有一些坑,所以干脆直接用本地的nginx再次转发了gitlab里面的nginx,这样不会出问题,也很灵活,不过有可能性会有一些性能上的损失。

1.安装并配置必要的依赖项

sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates

接下来,安装Postfix以发送通知电子邮件

sudo apt-get install -y postfix

在Postfix安装期间,可能会出现配置屏幕。选择“Internet Site”并按Enter键。使用服务器的外部DNS作为“邮件名称”,然后按Enter键。如果出现其他屏幕,请继续按Enter键接受默认值。

2.添加GitLab软件包存储库并安装软件包

添加GitLab包存储库。

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

接下来,安装GitLab包。更改【 http://git.xxx.com (这个域名自己根据实际修改,以下仅为演示) 】为您要访问GitLab实例的URL。安装将自动配置并启动该URL的GitLab。

sudo EXTERNAL_URL="http://git.xxx.com" apt-get install gitlab-ee

3.修改配置

vim /etc/gitlab/gitlab.rb

添加以下配置项:

#这是Gitlab跳转的URL地址,这里面不要设置成IP地址。
EXTERNAL_URL="http://git.xxx.com"
#这是Gitlab中SSH的端口号,要跟linux系统一致
gitlab_rails['gitlab_shell_ssh_port'] = 12222
#将监听的端口改一下,unicorn的web服务器,nginx作了转发
nginx['listen_port'] = 19090
unicorn['port'] = 19091
#以下是邮件服务器的配置
gitlab_rails['gitlab_email_from'] = "xxx@xxx.com"
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.mxhichina.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@xxx.com"
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "mxhichina.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

修改完成后,需执行以下命令来更新配置:

gitlab-ctl reconfigure
GitLab常用命令:
sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;

4.配置本机的nginx

本方式是采用本地自带的nginx转发gitlab里面的web服务器。
配置方法:

upstream git{

    # 端口对应 gitlab 配置中的 nginx['listen_port']
    server 127.0.0.1:19090;
}
server{
    listen 80;
    # 此域名是提供给最终用户的访问地址
    server_name git.xxx.com;
    location / {
        # 这个大小的设置非常重要,如果 git 版本库里面有大文件,设置的太小,文件push 会失败,根据情况调整
        client_max_body_size 50m;
        proxy_redirect off;
        #以下确保 gitlab中项目的 url 是域名而不是 http://git,不可缺少
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 反向代理到 gitlab 内置的 nginx
        proxy_pass http://git;
        index index.html index.htm;
    }
}

5.浏览到主机名并登录

在您第一次访问时( http://git.xxx.com ),您将被重定向到密码重置屏幕。提供初始管理员帐户的密码,您将被重定向回登录屏幕。使用默认帐户的用户名root登录。

有关安装和配置的详细说明,请参阅我们的文档。

附注:

1.测试邮箱是否配置成功:
配置完成后可以用Rails控制台验证邮件是否能发送成功。 在GitLab服务器上,执行 gitlab-rails console 进入控制台。 然后在控制台提示符后输入下面的命令 发送一封测试邮件:

irb(main):003:0> Notify.test_email(‘destination_email@address.com’, ‘Message Subject’, ‘Message Body’).deliver_now
**示例:**
Notify.test_email(‘收件人邮箱’, ‘邮件标题’, ‘邮件正文’).deliver_now

2.官方参考