11月初,我做了一项重大决定!

文摘   2024-11-04 08:02   四川  

大家好,我是冰河~~

最近一段时间,总有星球小伙伴向我反馈说自己授权过的代码莫名其妙访问不到了,拉取代码提示500错误等。收到这些反馈时,我也是很无奈,只能引导小伙伴们一次次重试,或者我也会协助找客服处理。

又一个可直接应用于生产环境的监控组件项目完结并上线,点击链接:https://t.zsxq.com/LjMTj 快速学习,并可直接应用于你的生产环境项目。

因为星球的代码是托管到gitcode.net的,也就是托管到三方了,出了问题,咱除了引导小伙伴重试和找客服以及技术支持外,确实也别无他法。

随着反馈gitcode问题的小伙伴越来越多,我也在默默开始调研其他的代码托管平台,包括:GitHub、Gitee、BitBucket、SourceForge等等。这些代码托管平台虽然非常成熟,但是都不太符合对项目和成员的周期性管理需求。

既然这些成熟的代码托管平台都不太符合对项目和成员的周期性管理需求,再加上gitcode目前又不能创建新的项目和组织了。

那何不自己搭建一个gitlab来管理项目和成员呢?说干就干,于是,周末花了3个小时左右的时间,自己搭建了gitlab并对整体功能进行测试,总体来说,自己搭建的gitlab还是比较符合预期需求的。

况且,自己搭建gitlab后,小伙伴们如果后续遇到啥问题,我也可以迅速撸起袖子为大家快速处理问题,也不必无奈的等gitcode处理了。总之,自己搭建gitlab后,咱的腰杆子也比之前更硬了。

后续项目的一些代码我都会提交到自己搭建的gitlab平台上,小伙伴们可以到我的gitlab地址注册账号来授权代码访问。今天,我就将搭建gitlab的步骤分享给大家。

注意:我是在CentOS7服务器上安装并配置的GitLab,如果在其他服务器上安装并配置GitLab,可能会略有不同。

安装gitlab

命令行输入如下命令:

vim /etc/yum.repos.d/gitlab_gitlab-ce.repo

添加如下内容:

[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key

随后执行如下两条命令:

yum install gitlab-ce
#配置并启动 GitLab
gitlab-ctl reconfigure

gitlab常用命令如下:

启动 : gitlab-ctl start
停止 : gitlab-ctl stop
重启 : gitlab-ctl restart
查看服务状态 : gitlab-ctl status

修改默认存放目录

停止gitlab

gitlab-ctl stop

输入如下命令修改gitlab配置文件

vim /etc/gitlab/gitlab.rb

找到 git_data_dirs里面的path 换成共享文件自己想要配置的目录。

git_data_dirs({
  "default" => {
    "path" => "/home/gitlab/code"
   }
})

将旧的gitlab数据迁移到新目录 (使用 rsync 命令)

 rsync -av /var/opt/gitlab/git-data/repositories  /mnt/hgfs/project

重新加载配置

gitlab-ctl repositories

启动gitlab,等待几分钟

gitlab-ctl start

修改gitlab默认端口

(1)修改修改 gitlab-http.conf

命令行输入如下:

/var/opt/gitlab/nginx/conf/gitlab-http.conf

修改server的配置,修改后的配置如下所示。

server { ## HTTPS server
  listen *:10000;


  server_name 10.3.3.21;
  server_tokens off; ## Don't show the nginx version number, a security best practice

  ## Increase this if you want to upload large attachments
  ## Or if you want to accept large git objects over http
  client_max_body_size 0;

(2)修改gitlab.rb

命令行输入如下命令。

vim /etc/gitlab/gitlab.rb

在gitlab.rb中找到nginx['listen_port']并修改成如下所示。

nginx['listen_port'] = 10000

找到如下代码。

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

修改成如下代码。

external_url 'http://10.3.3.21'

(3)修改gitlab.yml配置

命令行输入如下命令。

vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

修改后的配置如下所示。

production: &base
  #
  # 1. GitLab app settings
  # ==========================

  ## GitLab settings
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: 10.3.3.21
    port: 10000
    https: false

(4)重新加载配置

gitlab-ctl reconfigure

随后按照如下命令启动、停止、重启和查看gitlab服务状态即可。

启动 : gitlab-ctl start
停止 : gitlab-ctl stop
重启 : gitlab-ctl restart
查看服务状态 : gitlab-ctl status

(5)配置外部nginx访问gitlab

在命令行输入如下命令

vim /etc/gitlab/gitlab.rb

将external_url修改成如下所示。

external_url 'http://10.3.3.21/coding'

随后执行如下命令重新加载gitlab配置并重启gitlab。

gitlab-ctl reconfigure
gitlab-ctl restart

随后配置外部Nginx,在nginx.conf配置文件的http下添加如下配置。

upstream gitlab
{
    server 10.3.3.21:10000 weight=1 max_fails=2 fail_timeout=60s;
}

随后在nginx.conf的server下添加如下配置。

server 
{
    listen       80;
    server_name  你的域名;

    location /coding
    {
        client_max_body_size    1024m;
        proxy_pass              http://gitlab;
        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_http_version      1.1;
        proxy_set_header        Upgrade $http_upgrade;
        proxy_set_header        Connection "upgrade";
    }
}

随后在浏览器输入 http://你的域名/coding  即可打开gitlab页面。

冰河自行搭建的gitlab地址已经发布到星球,小伙伴们可以点击链接自行注册gitlab账号,随后冰河会为大家开通项目代码访问权限。

写在最后

在冰河的知识星球除了目前正在热更的高性能网关外,还有其他8个项目,像高性能熔断组件、通用指标上报组件、分布式IM即时通讯系统、Sekill分布式秒杀系统、手写RPC、简易商城系统等等,这些项目的需求、方案、架构、落地等均来自互联网真实业务场景,让你真正学到互联网大厂的业务与技术落地方案,并将其有效转化为自己的知识储备。

值得一提的是:冰河自研的Polaris高性能网关比某些开源网关项目性能更高,你还在等啥?不少小伙伴经过星球硬核技术和项目的历练,早已成功跳槽加薪,实现薪资翻倍,而你,还在原地踏步,抱怨大环境不好。抛弃焦虑和抱怨,我们一起塌下心来沉淀硬核技术和项目,让自己的薪资更上一层楼。

目前,领券5折,就可以跟冰河一起学习《手写高性能Polaris网关》、《手写高性能通用熔断组件项目》、《手写高性能通用监控指标上报组件项目》、《简易商城脚手架项目》、《手写高性能RPC项目》和《Spring6核心技术与源码解析》、《实战高并发设计模式》、《分布式Seckill秒杀系统》和《分布式IM即时通讯系统》,从零开始介绍原理、设计架构、手撸代码。

花很少的钱就能学这么多硬核技术、中间件项目和大厂秒杀系统与分布式IM即时通讯系统,比其他培训机构不知便宜多少倍,硬核多少倍,如果是我,我会买他个十年!

加入要趁早,后续还会随着项目和加入的人数涨价,而且只会涨,不会降,先加入的小伙伴就是赚到。

另外,还有一个限时福利,邀请一个小伙伴加入,冰河就会给一笔 分享有奖 ,有些小伙伴都邀请了50+人,早就回本了!

其他方式加入星球:

  • 链接 :打开链接 http://m6z.cn/6aeFbs 加入星球。
  • 回复 :在公众号 冰河技术 回复 星球 领取优惠券加入星球。

特别提醒: 苹果用户进圈或续费,请加微信 hacker_binghe 扫二维码,或者去公众号 冰河技术 回复 星球 扫二维码加入星球。

好了,希望今天的内容能够为大家带来实质性的帮助,我是冰河,我们下期见~~

往期推荐

推荐👍《又一个高性能网关项目已经成型,嘎嘎强

推荐👍《历时5个月,分布式IM即时通讯系统完美收官

推荐👍《历时5个月,秒杀系统完美收官

推荐👍《打开计划启动:每个项目的价值都远超门票

推荐👍《从单体到微服务,冰河的秒杀系统上硬菜了

推荐👍《用过来人的身份告诉你大厂为何要自研RPC

推荐👍深入理解高并发编程(第2版)发布

推荐👍SpringCloud Alibaba实战电子书发布

---END---

下方扫码领券限时 5折 加入 冰河技术 知识星球,你将获得:SpringCloud Alibaba实战、实战高并发设计模式、手写高性能网关、手写高性能通用熔断组件、手写分布式IM系统(对接ChatGPT),手写秒杀系统,手写RPC、手写调度系统、Spring6源码解析、并发编程、性能调优、框架源码、面经手册等高质量大厂项目和技术小册/PDF等资料。目前,分布式IM即时通讯系统已经完结,分布式高性能网关项目正在热更中,后续会根据星球加入人数和项目完善情况,逐步涨价,点击:查看更多...

知识星球:冰河技术
公众号后台回复“并发编程2”领取《深入理解高并发编程(第2版)》电子书。回复 “并发编程” 领取冰河原创的全网累计下载超70W+的《深入理解高并发编程(第1版)》电子书。回复 “渗透笔记” 领取冰河原创的全网首个开源的以实战案例为背景的《冰河的渗透实战笔记》电子书。回复 “PDF” 领取冰河整理的其他8本超硬核PDF电子书,海量面试资料和简历模板。
冰河从一名普通程序员,一路进阶成长为互联网资深技术专家,TVP腾讯云最具价值专家,一直致力于分布式系统架构、微服务、分布式数据库、分布式事务、大数据以及云原生技术的研究。在高并发、高可用、高可扩展性、高可维护性、大数据以及云原生等领域拥有丰富的架构经验。希望我的经验能够为你带来帮助。

公众号:冰河技术


视频号:冰河技术


喜欢就点个 在看 呗 👇

冰河技术
分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。
 最新文章