[gitlab]自定义Nginx服务器

RT

Gitlab的rpm包是包含了所有的需要的软件,包括redis,Nginx,PQ(和MySQL类似排名比mysql低一点的关系型数据库)等。

但是有些时候,我们都已经安装了这些东西中的某一部分,所以,只能在yum安装后配置一下。

以Nginx为例,这里我们需要严格按照官方的教程来:

英文原地址:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#using-a-non-bundled-web-server

默认的GitLab是采用Unix Socket跑的(当然Unix Socket的效率比http的效率要高,但是有时候你的nginx不在本机,这就需要我们通过http来代理了,不过不在本篇的叙述范围,有时间我在说。),所以我们只需要在gitlab的配置上就只需要配置5个位置,都是在文件

/etc/gitlab/gitlab.rb

1、禁用默认的Nginx

nginx[‘enable’] = false

2、设置nginx的用户组 (就是你所使用的Nginx 的用户组,我用军哥的一键包,用户组是www)

因此我改成

web_server[‘external_users’] = [‘www’]

这个是一个数组,你可以添加多个,但是我不建议

3、添加信任的代理(如果你是本地Nginx,那么久按照下面来吧)

gitlab_rails[‘trusted_proxies’] = [‘localhost’,’127.0.0.1′]

4、Apache才要配置,Nginx没必要

gitlab_workhorse[‘listen_network’] = “tcp”
gitlab_workhorse[‘listen_addr’] = “127.0.0.1:8181”

到这里,gitlab的配置完成了

使用命令gitlab-ctl reconfigure搞定重新运行配置

剩下的就是配置Nginx的配置了。

一般抄一下/var/opt/gitlab/nginx/conf/gitlab-http.conf的配置就OK了,如果你不懂Nginx配置,那么你就放弃挣扎,默认gitlab会使用hostname来当做访问域名,因此如果你TMD真不懂,你就改一下hostname,然后再安装gitlab,如果这也不会,那我也无能为力。

最后使用socket饭袋的时候,socket文件需要能被nginx访问,但是gitlab有时候生成的socket文件是git:git 用户和用户组的

为了git用户组,和www用户都能访问

我们可以使用chown -R www:git 来赋予Nginx访问和git的访问写入权限。

至此我们完成了使用自己的Nginx来饭袋gitlab的操作。

最后还有点小瑕疵就是你发送邮件的时候,还是会显示用你的hostname作为邮件的主域名,而有些时候我们的hostname并不能正常访问,因此我们还是需要设置一个选项的就是下面的

external_url ‘https://www.togit.cc’

吧上面的网址替换成你自己的就OK了。

Update Log:2017-10-09

新装gitlab的时候会莫名其妙的装个apache?然后替换掉lnmpa(我用军哥的lnmpa包)的apache启动和重启脚本。因此,需要你自己去重新替换掉。否则当你的apache挂掉重启之后,你会发现TMD你配置文件都没问题,但是你的apache总是提示你没法绑定80端口。我找了1小时才想起来看他的启动脚本,发现全TMD不是lnmpa的apache路径才恍然大悟,原来启动脚本本替换了。蛋疼的很。

 

 

 

未经允许不得转载:RffanLAB|Rffan实验室 » [gitlab]自定义Nginx服务器

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏