| 1、nginx: 静态web服务器在这里插入代码片 |
| |
| 2、gitlab-shell: 用于处理Git命令和修改authorized keys列表 |
| 3、gitlab-workhorse: 轻量级的反向代理服务器,可以处理一些大的HTTP请求(磁盘上的 CSS、JS 文件、文件上传下载等),处理 Git Push/Pull 请求,处理到Rails 的连接会反向代理给后端的unicorn(修改由 Rails 发送的响应或发送给 Rails 的请求,管理 Rails 的长期 WebSocket 连接等)。 |
| |
| 4、logrotate:日志文件管理工具 |
| |
| 5、postgresql:repository 中的数据(元数据,issue,合并请求 merge request 等 , 可以登录 Web 的用户 |
| |
| 6、redis:缓存每个客户端的sessions和后台队列,负责分发任务。Redis需求的存储空间很小,大约每个用户25KB |
| |
| 7、sidekiq:用于在后台执行队列任务(异步执行) |
| |
| 8、unicorn:Gitlab 自身的 Web 服务器(Ruby Web Server),包含了 Gitlab 主进程,负责处理快速/一般任务,与 Redis 一起工作,配置参考:CPU核心数 + 1 = unicorn workers数量。 |
| 1. 通过检查存储在 Redis 中的用户会话来检查权限 |
| 2. 为 Sidekiq 制作任务 |
| 3. 从仓库(warehouse)取东西或在那里移动东西 |
| |
| 9、gitlab-shell:用于 SSH 交互,而不是 HTTP。gitlab-shell 通过 Redis 与 Sidekiq 进行通信,并直接或通过 TCP 间接访问 Unicorn。用于处理Git命令和修改authorized keys列表 |
| |
| 10、Gitaly:后台服务,专门负责访问磁盘以高效处理 gitlab-shell 和 gitlab-workhorse 的git 操作,并缓存耗时操作。所有的 git 操作都通过 Gitaly 处理,并向 GitLab web 应用程序提供一个 API,以从 git(例如 title, branches, tags, other meta data)获取属性,并获取 blob(例如 diffs,commits,files) |
| |
| 11、Sidekiq:后台核心服务,可以从redis队列中提取作业并对其进行处理。后台作业允许GitLab通过将工作移至后台来提供更快的请求/响应周期。Sidekiq任务需要来自Redis |
| |
| 12、prometheus:提供监控 |
| gitlab-ctl start/stop/restart |
| gitlab-ctl start redis/postgresql/gitlab-workhorse/logrotate/nginx/sidekiq/unicorn |
| cat /opt/gitlab/embedded/service/gitlab-rails/VERSION |
| gitlab-rake gitlab:check SANITIZE=true --trace |