参考部署手册使用 Caddy 来反向代理 GitLab ,替换其内置的 NGiNX。
部署 Caddy
部署过程不再赘述,常见的发行版建议使用包管理进行部署,如果 GitLab 在容器环境中,那么 Caddy 也推荐使用容器部署。
然后修改配置文件,原仓库中的配置为 v1 版本兼容,在 v2 版本中已不适配,需要改为:
{
auto_https off
metrics
}
git.gitlab.com {
tls /etc/caddy/ssl/git.gitlab.com.crt /etc/caddy/ssl/git.gitlab.com.key
log {
output file /var/log/caddy/git.access.log
format json
level INFO
}
handle_errors {
@404 expression {http.error.status_code} == 404
rewrite @404 /404.html
file_server {
root /opt/gitlab/embedded/service/gitlab-rails/public
}
@422 expression {http.error.status_code} == 422
rewrite @422 /422.html
file_server {
root /opt/gitlab/embedded/service/gitlab-rails/public
}
@500 expression {http.error.status_code} == 500
rewrite @500 /500.html
file_server {
root /opt/gitlab/embedded/service/gitlab-rails/public
}
@502 expression {http.error.status_code} == 502
rewrite @502 /502.html
file_server {
root /opt/gitlab/embedded/service/gitlab-rails/public
}
}
reverse_proxy http://127.0.0.1:8181 {
header_up X-Forwarded-Ssl on
}
}这是禁用了 acme 获取证书,手动部署证书,如果是自动方案按官方手册修改第一部分即可。
改造 GitLab
如果是 Omnibus 方式部署的 GitLab,需要修改配置(集群修改 Rails 节点):
## 域名修改为 https:// 形式
external_url 'https://git.gitlab.com'
## 将 workhorse 从套接字改为网络,并制定监听端口
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
## 需要指定 Web 服务的启动用户,包管理形式为 caddy,手动部署的话按实际情况修改
web_server['external_users'] = ["caddy"]
## 最后关闭内置的 NGX
nginx['enable'] = false然后重新配置服务
sudo gitlab-ctl reconfigure附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2025-11-12 15:51 PM