- 密码要求
- SSH 密钥限制
- SSH 主机密钥指纹
- SSH
known_hosts
条目 - 邮件配置
- 备份
- 延迟项目删除
- 非活跃项目删除
- 备用 SSH 端口
- 极狐GitLab Pages
- 极狐GitLab CI/CD
- 软件包限制
- 账户和限制设置
- IP 范围
- 主机名列表
- Webhooks
- Runner SaaS
- Sidekiq
- PostgreSQL
- Puma
- JihuLab.com 特定的速率限制
- JihuLab.com 日志记录
JihuLab.com 设置
此页面包含有关 JihuLab.com 上使用的设置的信息,可供极狐GitLab SaaS 客户使用。
密码要求
JihuLab.com 对新账户和更改的密码有以下要求:
- 最小字符长度为 10 个字符;
- 最大字符长度为 128 个字符;
- 字符由大写字母、小写字母、数字、符号其中至少 3 种组成;
- 所有字符都被接受。例如:
~
、!
、@
、#
、$
、%
、^
、&
、*
、()
、[]
、_
、+
、=
、-
。
SSH 密钥限制
JihuLab.com 使用默认SSH 密钥限制。
SSH 主机密钥指纹
以下是 JihuLab.com 中的 SSH 主机密钥指纹。首次通过 SSH 协议连接 JihuLab.com 代码库时,会打印出其中的某个指纹。
算法 | SHA256 |
---|---|
ED25519 | oFjzO7Pjq2iFPAVDPI9LmQLeC7Vmst/vFy6Bd1Mlljw
|
RSA | NH6pILFtJnZCTefvALgWVShVUSyXmhnnwj/RjR76CJ4
|
DSA (deprecated) | X42tkbvmtfwwPXggioadkFni7DgBybAdI9aensl/Hh4
|
ECDSA | /YbJq0B1VPMOFY0SOs9DINmpXC7Ihyd6amYgZnrWFVc
|
SSH known_hosts
条目
将以下内容添加到 .ssh/known_hosts
来跳过 SSH 中的手动指纹确认:
JihuLab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAF3eNpQq0GNg0IZgh6gWOd1UOoaVJAQU9tjj6ocVuMT
JihuLab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpndvpEtk3Ajwp74T6t6/uofKW6HzS/ZYmzqEFNxl+er1uroc0ZYfo3c211k3y3ickN8fKkOcADagC9QI3Wt/sKfff/46gpKie70bUyEjdSVA42hdhUvLQ+jASjU3QE+7frJQ/7Qzbff8URPJ9HQba3vPA8QDAvbDEWpLN7n364zELXKiuN1jGD0oemTsJsKDcc07cSwNTwTVDLdRYPCU4RhT0q/l2Xtmd1KgDFOmPoI0S2wkRO47soJcjbMlUhh5p/uZBV+XJxj2BWUlJERoBQie/AbZZfWjdRNZSKf4y7qHoR8YBAD7gSRKBkQM20Dd0DqGRI7HUyYdCQtU5Ex+3Zh7WtJwhWBWJ42zu+ILUfRsXQvJnGZ3fgc8BlEO3hzP+rJWKGZbVjgkMNsX7ZkXwNZ/xzj8oBHhCE2EvfjLo0+nHpRjppQXC7VWQSpxMv4M6RTcwuEW/hC5L/QpXEaORW1I5T68eJCsMuOIBOnZb+t7lM5ftOLLW2/7DUz8FS9tKyfCVHohHfOJexqrACF3FkGsXYxx5XKm9KjLrQtfXZLeWDaColIX0w6szCha9NnclQfs38izoYCpyE2ue8HwPdMJT9M19XW+ZfidLPBf/U0SK5eSwSQRj+HFSKxAz7kLZRmxi61jdaOVvdgUmT/ByvwVnWyne0EE8M0zLesm8Tw==
JihuLab.com ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAD6qo5z7vy4J1dTRyhaf8ats0lDWVgpgMddICUaVRTSMcNjfSaq4XHdPnSeXwWsAuSYN/3KZzoVsKcvZ/y5bc15fQHomE2B4Wn0+AnFv8XDv0ZHuAnZ4JLvbjtG0aVjsdO/97MF3kAeabQm4+ci4YPx4GZVxE/2LcN+W8S024Ky7+qLKA==
邮件配置
JihuLab.com 使用阿里云邮件推送服务发送通知邮件,系统邮件的域名为 msg.jihulab.com
。
JihuLab.com 使用阿里云企业邮箱服务接收特定邮件,接收邮件的域名为 mg.jihulab.com
。
服务台自定义邮箱
JihuLab.com 提供的服务台(Service Desk)功能允许用户通过发送邮件的方式创建议题。邮件地址为 contact-project+%{key}@mg.jihulab.com
。您可以在项目设置中自定义邮件后缀。
备份
当前 JihuLab.com 的备份策略:
- 生产数据库的 base backup 备份是每 24 小时进行一次,同时通过 wal 进行连续增量备份,流向腾讯云 COS。这些备份都是加密的,备份保留 40 天。
- 存储所有用户 git 仓库数据的文件系统通过磁盘快照的方式进行备份,每 15 分钟进行一次,备份保留 7 天。
- 存储在对象存储(腾讯云 COS)中的数据,如产物(artifacts)、容器镜像库等,没有额外的备份,依靠的是腾讯云 COS 提供的 99.9999999999% 的数据持久性,以及多 AZ 的存储架构。
用户可以采用以下两种方式,自行备份 JihuLab.com 上的的项目:
延迟项目删除
在 JihuLab.com 创建的顶级群组默认启用了延迟项目删除,项目将在 7 天延迟后被永久删除。
如果您使用:
- 专业版及以上版本,您可以通过更改群组设置禁用此功能。
- 免费版,您不能禁用此设置或恢复项目。
非活跃项目删除
非活跃项目删除在 JihuLab.com 上默认禁用。
备用 SSH 端口
可以通过为 git+SSH
使用不同的 SSH 端口,来访问 JihuLab.com。
设置 | 值 |
---|---|
Hostname
| altssh.jihulab.com
|
Port
| 443
|
~/.ssh/config
的示例如下:
Host jihulab.com
Hostname altssh.jihulab.com
User git
Port 443
PreferredAuthentications publickey
极狐GitLab Pages
由于安全合规等因素,JihuLab.com 暂未开启 Pages 功能。
极狐GitLab CI/CD
以下是有关极狐GitLab CI/CD 的当前设置。 此处未列出的任何设置或功能限制均使用相关文档中列出的默认值。
设置 | JihuLab.com | 默认值(私有化部署版) |
---|---|---|
最大产物大小(压缩) | 1 GB | 查看最大产物大小。 |
产物过期时间 | 默认 30 天后删除,除非另有规定 | 查看默认产物过期。 |
计划流水线 Cron | */5 * * * *
| 查看流水线计划高级配置。 |
活跃流水线的最大作业数量 | 免费版:500 付费版: 1000
| 查看活跃流水线作业数。 |
项目的最大 CI/CD 订阅量 | 2
| 查看一个项目的 CI/CD 订阅数。 |
项目中流水线触发器的最大数量 | 免费版:25000 付费版:无限制 | 查看限制流水线触发器的数量。 |
项目中流水线计划的最大数量 | 免费版:10 付费版: 50
| 查看最大流水线计划数量。 |
由流水线计划创建的最大流水线数量 | 免费版:24 付费版: 288
| 查看限制每天由流水线计划创建的流水线数量。 |
每个安全策略项目定义的计划规则的最大数量 | 所有用户无限制 | 查看为安全策略项目定义的计划规则的数量(引入于 15.1 版本)。 |
计划作业归档 | 3 个月 | 从不 |
每个单元测试报告的最多测试用例 | 500000
| 无限制 |
注册 runners 的最大数量 | 免费版:每个群组 50 ,每个项目 50 付费版:每个群组 1000 ,每个项目 1000
| 查看每个范围的注册 runners 数量。 |
dotenv 变量限制 | 免费版:50 专业版: 100 旗舰版: 150
| 查看限制 dotenv 变量。 |
授权令牌持续时间(分钟) | 15
| 要设置自定义值,请在 Rails 控制台中运行:ApplicationSetting.last.update(container_registry_token_expire_delay: <integer>) ,其中 <integer> 是所需的分钟数。
|
软件包限制
上传到极狐GitLab 软件包库的包的最大文件大小因格式而异:
包类型 | JihuLab.com |
---|---|
Conan | 5 GB |
Generic | 5 GB |
Helm | 5 MB |
Maven | 5 GB |
npm: | 5 GB |
NuGet | 5 GB |
PyPI | 5 GB |
Terraform | 1 GB |
账户和限制设置
JihuLab.com 启用了以下账户限制。如果没有列出某个设置,默认值与私有化部署实例相同:
设置 | JihuLab.com 默认值 |
---|---|
包含 LFS 的仓库大小 | 2 GB |
最大导入大小 | 5 GB |
最大附件大小 | 10 MB |
IP 范围
在配置 JihuLab.com 的 webhook 和仓库镜像时,需要允许以下 IP 列表:
1.117.22.3/32
1.117.26.213/32
JihuLab.com 前端使用的是星盾,如果需要连接到 JihuLab.com,您可能需要允许星盾的 CIDR 块(IPv4 和 IPv6)。
JihuLab.com 上的共享 runner 部署在腾讯云上,不提供静态 IP。
主机名列表
在本地 HTTP 代理(或其它网络屏蔽软件)中配置允许列表,添加如下主机名:
jihulab.com
*.jihulab.com
gitlab.cn
*.gitlab.cn
Webhooks
以下限制适用于 webhooks:
设置 | JihuLab.com 默认值 |
---|---|
Webhook 速率限制 | 免费版:每分钟 500 次调用 专业版和旗舰版:无限制 Webhook 速率限制适用于每个顶级命名空间。 |
Webhook 数量 | 每个项目 100 个;每个群组 50 个。 |
最大有效载荷大小 | 25 MB |
Runner SaaS
Runner SaaS 是托管的、安全的、受管理的构建环境,您可以使用它来为您的 JihuLab.com 托管项目运行 CI/CD 作业。
Sidekiq
JihuLab.com 运行 Sidekiq 时,使用参数 --timeout=4 --concurrency=4
和以下环境变量:
设置 | JihuLab.com | 默认值 |
---|---|---|
SIDEKIQ_DAEMON_MEMORY_KILLER
| - | 1
|
SIDEKIQ_MEMORY_KILLER_MAX_RSS
| 2000000
| 2000000
|
SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS
| - | - |
SIDEKIQ_MEMORY_KILLER_CHECK_INTERVAL
| - | 3
|
SIDEKIQ_MEMORY_KILLER_GRACE_TIME
| - | 900
|
SIDEKIQ_MEMORY_KILLER_SHUTDOWN_WAIT
| - | 30
|
SIDEKIQ_LOG_ARGUMENTS
| 1
| 1
|
SIDEKIQ_MEMORY_KILLER_MAX_RSS
设置为 16000000
。PostgreSQL
JihuLab.com 是一个大规模的极狐GitLab 安装实例,这意味着我们要更改各种 PostgreSQL 设置来更好地满足我们的需求。例如,我们使用流式复制和热备模式的服务器来平衡不同数据库服务器之间的查询。 JihuLab.com 特定设置(及其默认设置)列表如下:
设置 | JihuLab.com | 默认值 |
---|---|---|
archive_command
| /usr/bin/envdir /etc/wal-e.d/env /opt/wal-e/bin/wal-e wal-push %p
| 空值 |
archive_mode
| on | off |
autovacuum_analyze_scale_factor
| 0.01 | 0.01 |
autovacuum_max_workers
| 6 | 3 |
autovacuum_vacuum_cost_limit
| 1000 | -1 |
autovacuum_vacuum_scale_factor
| 0.01 | 0.02 |
checkpoint_completion_target
| 0.7 | 0.9 |
checkpoint_segments
| 32 | 10 |
effective_cache_size
| 338688MB | 取决于可用的服务器内存 |
hot_standby
| on | off |
hot_standby_feedback
| on | off |
log_autovacuum_min_duration
| 0 | -1 |
log_checkpoints
| on | off |
log_line_prefix
| %t [%p]: [%l-1]
| 空值 |
log_min_duration_statement
| 1000 | -1 |
log_temp_files
| 0 | -1 |
maintenance_work_mem
| 2048MB | 16 MB |
max_replication_slots
| 5 | 0 |
max_wal_senders
| 32 | 0 |
max_wal_size
| 5GB | 1GB |
shared_buffers
| 112896MB | 取决于可用的服务器内存 |
shared_preload_libraries
| pg_stat_statements | 空值 |
shmall
| 30146560 | 取决于服务器 |
shmmax
| 123480309760 | 取决于服务器 |
wal_buffers
| 16MB | -1 |
wal_keep_segments
| 512 | 10 |
wal_level
| replica | minimal |
statement_timeout
| 15s | 60s |
idle_in_transaction_session_timeout
| 60s | 60s |
Puma
JihuLab.com 对 Puma 请求超时的默认值为 60 秒。
JihuLab.com 特定的速率限制
当请求受到速率限制时,系统会以 429
状态码响应。在再次尝试请求之前,客户端应该等待。在速率限制响应中,还详细说明了此响应的信息标头。
下表描述了 JihuLab.com 的速率限制:
速率限制 | 从 2021-02-12 | 从 2022-02-03 |
---|---|---|
受保护的路径(对于给定的 IP 地址) | 每分钟 10 个请求 | 每分钟 10 个请求 |
原始端点流量(对于给定的项目、提交和文件路径) | 每分钟 300 个请求 | 每分钟 300 个请求 |
未经身份验证的流量(来自给定的 IP 地址) | 每分钟 500 个请求 | 每分钟 500 个请求 |
经过身份验证的 API 流量(对于给定的用户) | 每分钟 2000 个请求 | 每分钟 2000 个请求 |
经过身份验证的非 API HTTP 流量(对于给定的用户) | 每分钟 1000 个请求 | 每分钟 1000 个请求 |
所有流量(来自给定的 IP 地址) | 每分钟 2000 个请求 | 每分钟 2000 个请求 |
议题创建 | 每分钟 300 个请求 | 每分钟 200 个请求 |
备注创建(议题与合并请求中) | 每分钟 60 个请求 | 每分钟 60 个请求 |
高级、项目和群组搜索 API(对于给定的用户) | 每分钟 10 个请求 | 每分钟 10 个请求 |
流水线创建请求(对于给定的项目、用户和提交) | 每分钟 25 个请求 |
极狐GitLab 可以在几个层次上限制请求的速率,这里列出的速率限制是在应用程序中配置的,这些限制是每个 IP 地址最严格的限制。要了解更多关于 JihuLab.com 速率限制的信息,请阅读我们的运行手册中的 JihuLab.com 速率限制概述。
速率限制响应
有关速率限制响应的信息,请参阅:
受保护的路径节流
JihuLab.com 以 HTTP 状态代码 429
,来响应每个 IP 地址每分钟超过 10 个的受保护路径上的 POST 请求。
请参阅下文,了解哪些路径受到保护,包括用户创建、用户确认、用户登录和密码重置。
用户和 IP 速率限制包括响应被阻止请求的标头列表。
查看受保护的路径,获取更多信息。
IP 阻塞
当 JihuLab.com 从系统视为潜在恶意的单个 IP 地址接收异常流量时,可能会发生 IP 阻塞。这可以基于速率限制设置。异常流量停止后,IP 地址会根据阻塞的类型自动释放,如下节所述。
如果您收到对 JihuLab.com 的所有请求的 403 Forbidden
错误,请检查任何可能触发阻塞的自动化进程。如需帮助,请联系极狐技术支持,并提供详细信息,例如受影响的 IP 地址。
Git 和容器镜像库未通过身份验证禁用
如果在 3 分钟内从单个 IP 地址收到 30 个失败的身份验证请求,JihuLab.com 会以 HTTP 状态代码 403
响应 1 小时。
这仅适用于 Git 请求和容器镜像库 (/jwt/auth
) 请求(组合)。
此限制:
- 可由成功验证的请求重置。例如,29 个失败的身份验证请求后跟 1 个成功的请求,然后再有 29 个失败的身份验证请求不会触发禁用。
- 不适用于
gitlab-ci-token
认证的 JWT 请求。
没有提供响应标头。
分页响应标头
出于性能原因,如果查询返回超过 10,000 条记录,系统排除一些 headers。
可见性设置
在 JihuLab.com 上禁用了内部可见性设置:
- 项目
- 群组
- 代码片段
SSH 最大连接数
JihuLab.com 通过 MaxStartups 设置,定义了最大并发数、未验证 SSH 连接数。如果并发发生的连接数超过允许的最大连接数,它们将被删除,用户得到一个 ssh_exchange_identification
错误。
导入/导出
为了帮助避免滥用项目和群组的导入、导出,以及导出下载受到速率限制,查看项目导入/导出速率限制,以及群组导入/导出速率限制,获取详细信息。
不可配置的限制
有关不可配置的速率限制的信息,请参阅不可配置的限制文档,也适用于 JihuLab.com。
JihuLab.com 日志记录
我们使用 Fluentd 来解析我们的日志。Fluentd 将我们的日志发送到 kafka,Stackdriver 用于在 Cloud Object Storage (COS) 中长期存储日志。Filebeat 将日志转发到 Elastic 集群。
您可以在我们的运行手册中查看更多信息,例如:
作业日志
默认情况下,极狐GitLab 不会使作业日志过期。作业日志无限期保留且无法在 JihuLab.com 上配置为过期。您可以使用作业 API 或通过删除流水线,手动清除作业日志。