在配置Gitlab时出现的一些问题以及解决方法

AI智能摘要
在配置 Gitlab 使用外部 Nginx 时,需先修改 `/etc/gitlab/gitlab.rb` 文件,关闭内置 Nginx 并设置 gitlab-workhorse 监听指定端口,同时配置可信代理。随后在外部 Nginx 中调整 `client_max_body_size` 防止上传失败,并正确设置反向代理参数与 SSL 证书路径。如需禁用多语言功能,可备份并编辑 `i18n.rb` 文件,注释不需要的语言选项,再通过 Rails 控制台重载路由并清除缓存,最终重启服务生效。
— AI 生成的文章内容摘要

配置gitlab使用外部Nginx服务器

打开 /etc/gitlab/gitlab.rb, 将一下代码修改

nginx['enable'] = false
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "0.0.0.0:3000" # 将3000设置成你自己的端口确保端口没有被占用
gitlab_rails['trusted_proxies'] = ['git.xxx.com'] # git.xxx.com 是你的external_url

然后重新配置gitlab和重启gitlab

$ gitlab-ctl reconfigure && gitlab-ctl restart

配置外部Nginx

在http块中添加这一行,用于防止上传文件过大的时候导致错误

http {
    client_max_body_size 256m;
}

配置反向代理

server {
    listen 443 ssl;
    server_name repo.rtast.cn;
    #ssl_certificate /etc/letsencrypt/live/rtast.cn/fullchain.pem;
    #ssl_certificate_key /etc/letsencrypt/live/rtast.cn/privkey.pem;
    ssl_certificate /root/ssl/repo.rtast.cn.chain.pem;
    ssl_certificate_key /root/ssl/repo.rtast.cn.key;
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Connection $http_connection;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300;
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
    }

    location /robots.txt {
        alias /etc/gitlab/robots.txt;
    }
}

将证书路径和后端端口配置成你设置的端口。

禁用多语言

这个功能虽然说没啥必要但是还是要提一下, 这个功能官方并没有直接提供,需要修改源代码才能实现。

首先备份i18n.rb 

$ cd /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab
$ cp i18n.rb i18n.rb.bak
$ vim i18n.rb

然后找到 AVAILABLE_LANGUAGES 将你不需要的语言注释掉注意必须保留一个, 然后往下滑找到TRANSLATION_LEVELS也注释掉不需要的语言必须保留一个。

然后打开rails console, 使用以下命令

$ sudo gitlab-rails console

等待一分钟左右输入以下命令

Rails.application.reload_routes!

然后等待重载完毕,重载完成之后使用exit退出console

再次执行以下命令

$ sudo gitlab-rake cache:clear
$ sudo gitlab-ctl restart

然后打开你的Gitlab退出登录左下角就只剩下你保留的语言了

温馨提示:

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:xiaoman1221@yhdzz.cn,工作室将第一时间处理!

2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有。

LInux软件学习技术默认

搭建一个企业级的Git托管平台Gitlab-EE 并附带破解使用企业版功能

2024-7-6 10:24:38

LInux软件学习技术

MinIO:小型的s3协议解决方案

2024-7-26 21:52:37

44 条回复 A文章作者 M管理员
  1. 改完i18n.rb清缓存那步不能少,我之前等了半天页面没反应,结果是忘了执行rake命令。

  2. 断魂箫声

    防火墙记得开3000端口,不然全白搭,新手最容易忽略这点。

  3. 期待的信封

    能不能通过插件方式实现语言禁用啊?动源码总觉得不安全。

  4. 八音盒

    想问下改workhorse监听端口会影响webhook吗?担心改动后触发不了。

  5. 雾隐幻影

    client_max_body_size调完之后上传大文件终于不报错了,爽!

  6. 星穹之下

    证书放/root底下权限确实容易出问题,建议挪到/etc/nginx/ssl下更稳妥。

  7. 流浪的月光

    刚在Ubuntu 22.04上试了,除了路径有点不一样基本能照搬,还算兼容。

  8. 冷漠的观察者

    这配置真够折腾的,搞了整整一天才跑通…

  9. 爱闹的葡萄

    证书权限问题确实坑,建议把nginx用户加到证书目录权限里。

  10. 糖糖小星星

    禁用多语言这操作挺实用的,界面清爽不少。

  11. proxy_set_header顺序确实重要,漏一个就各种问题。

  12. 胡琴悠扬

    外部nginx配起来确实比内置的稳定多了,就是步骤多了点。

    • Painted Sky

      生产环境用外部Nginx是靠谱些,就是调试阶段有点费劲。

  13. 绝望回声

    改i18n.rb会不会影响后续升级啊?有点担心这个。

  14. 独影

    client_max_body_size设置很关键,之前传大包老失败,改了就好了。

  15. 社交障碍患者

    这个配置在CentOS 7上试了没问题,版本兼容性应该还行。

  16. 白泽踏雪

    hhh 配置完访问速度飞起,就是文档太散,楼主整理得算清楚了。

    • 孤舟独行

      proxy_set_header那堆参数真的容易漏,我上次就因为少写X-Forwarded-Proto跳坑里了。

    • 雾锁寒窗

      hhh 我也是文档翻半天才拼凑出完整流程,楼主这个总结省事多了。

  17. 无意识之流

    刚照着配完,3000端口没开防火墙,连不上搞半天…新手别忘了这茬。

  18. 憨憨的香蕉

    感觉外部nginx配起来比内置的稳,就是步骤多了点,适合生产环境。

  19. Sky天空

    禁用多语言这操作有点野,下次升级岂不是白干?有没更持久的办法?

    • 叙事曲

      官方要是能出个语言包开关多好,每次升级还得重新改i18n.rb太麻烦了。

    • 老司机带偏

      之前升级gitlab直接把i18n.rb覆盖了,语言又回去了,简直无语。

  20. 木润春

    证书路径写对了但nginx起不来?查查/root/下权限,我就是被这个卡住的。

  21. 决胜千里

    proxy_set_header Host $host 这句漏了的话,登录页会跳回localhost,血泪教训。

  22. 改完i18n.rb记得清缓存,不然刷新半天还是多语言,我傻等了十分钟。

  23. 疾风残影

    楼主能不能出个一键脚本或者备份恢复步骤?手动操作怕出差错,想省心点。

    • 茶香小径

      脚本就算了,但求个备份还原checklist也行啊,改错一行得重装😭

  24. 潜影迷宫

    又是改配置又要重启,折腾一下午才稳定,真是既满足又累。

    • RTAkland

      折腾完确实累但值得,配置完流畅多了。

  25. 阳关三叠

    这配置里把 workhorse 改成 tcp 后,和外部 nginx 配合更灵活,实践证明性能也稳一些。

  26. 星月图书馆

    感觉官方把多语言弄成可选会更好,动源代码不太优雅,升级时会被覆盖吧?🤔

  27. 我之前也踩过证书路径坑,建议用绝对路径没错,但别忘了权限问题,证书被 nginx 读不到会502。

  28. 旧剪影

    请问这个在 Ubuntu 22.04 上也能直接照着做吗?有啥版本依赖需要注意吗?

    • RTAkland

      Ubuntu 22.04亲测能跑,不过得注意gitlab版本别太新,不然workhorse端口行为有点不一样。

    • 焦土游侠

      Ubuntu 22.04亲测可用,版本没特别要求。

  29. 超新星光芒

    proxy_set_header 这几行别漏了,头信息没转好会各种奇怪问题,建议标注一下顺序。

  30. 寂静的星辰

    client_max_body_size 这句真的重要,之前上传大文件秒报错,改了就稳了。

    • Velvet Dawn

      大文件上传终于不炸了,这行配置救我狗命!

  31. 古董钢笔

    刚改完i18n试了下,左下角语言果然少了,舒服多了。

  32. 枫林晚秋

    配置写得挺详细,按步骤走通了,省了我不少时间。

  33. 小满1221
    小满1221给作者打赏了¥20
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索