我们知道GitLab启动会产生很多进程,相应的进程对应不同的功能组件,这篇文章将介绍一下GitLab的应用架构组成部分。
应用架构
各组件说明
组件名称 | 功能说明 |
---|---|
PostgreSQL | 数据库: 持久化数据存放 |
Redis | 数据库:缓存信息存放 |
Gitlab Shell | 处理通过SSH方式的操作要求,一般为Git命令等操作 |
Nginx | Web应用服务器,用于处理通过HTTP或者HTTPS的用户界面操作 |
GitLab Workhorse | 轻量级的反向代理服务器 |
Unicorn | GitLab是ROR的应用,符合Rack标准的应用所使用的HTTP应用服务器,GitLab Rails应用所托管的应用服务器 |
Sidekiq | 用于执行异步的后台队列任务的功能组件 |
GitLab Pages | GitLab所提供的一项功能,允许用户发布从仓库发布静态的web站点 |
除此之外还有如下组件信息,虽然没有在上图中有显示,但是也是常用的组件
组件名称 | 功能说明 |
---|---|
Logrotate | 日志文件管理组件,用于进行日志的轮转操作 |
组件操作命令
使用gitlab-ctl可以对组件进行操作,简单如下所示:
组件 | 操作 | 命令 |
---|---|---|
Redis | 启动 | gitlab-ctl start redis |
Redis | 停止 | gitlab-ctl stop redis |
Redis | 重启 | gitlab-ctl restart redis |
Redis | 确认状态 | gitlab-ctl status redis |
Nginx | 启动 | gitlab-ctl start nginx |
Nginx | 停止 | gitlab-ctl stop nginx |
Nginx | 重启 | gitlab-ctl restart nginx |
Nginx | 确认状态 | gitlab-ctl status nginx |
PostgreSQL | 启动 | gitlab-ctl start postgresql |
PostgreSQL | 停止 | gitlab-ctl stop postgresql |
PostgreSQL | 重启 | gitlab-ctl restart postgresql |
PostgreSQL | 确认状态 | gitlab-ctl status postgresql |
Unicorn | 启动 | gitlab-ctl start unicorn |
Unicorn | 停止 | gitlab-ctl stop unicorn |
Unicorn | 重启 | gitlab-ctl restart unicorn |
Unicorn | 确认状态 | gitlab-ctl status unicorn |
Sitekiq | 启动 | gitlab-ctl start sitekiq |
Sitekiq | 停止 | gitlab-ctl stop sitekiq |
Sitekiq | 重启 | gitlab-ctl restart sitekiq |
Sitekiq | 确认状态 | gitlab-ctl status sitekiq |
另外不带第三个参数即可对整体进程操作,简单如下所示:
组件 | 操作 | 命令 |
---|---|---|
GitLab整体服务 | 启动 | gitlab-ctl start |
GitLab整体服务 | 停止 | gitlab-ctl stop |
GitLab整体服务 | 重启 | gitlab-ctl restart |
GitLab整体服务 | 确认状态 | gitlab-ctl status |
目录说明
整体目录说明
目录/文件 | 存放内容说明 |
---|---|
/etc/gitlab | 配置文件所在目录 |
/etc/gitlab/gitlab.rb | 配置文件 |
/opt/gitlab | 组件二进制文件存放目录 |
/var/opt/gitlab | 各组件配置文件所在目录 |
/var/opt/gitlab/backups | 缺省备份文件保存目录 |
/var/opt/gitlab/git-data | 仓库存储目录 |
各组件相应目录
以Redis为例,组件的二进制文件、配置文件和日志文件分别在如下目录进行保存
目录 | 存放内容说明 |
---|---|
/var/opt/gitlab/redis | 二进制文件存放目录 |
/var/log/gitlab/redis | 日志文件存放目录 |
/var/opt/gitlab/redis | 配置文件存放目录 |
参考文档
https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/doc/development/architecture.md