安装Gitlab,并采用nginx作80端口转发
引言
安装方法比较简单,重点想说的是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.官方参考