nginx 代理gitlab
环境: gitlab安装在公司内网里,通过nginx反代,能在外网环境里,通过ssh,http 方式clone 代码
解决办法:
1. 修改gitlab配置 vim /etc/gitlab/gitlab.rb
# 配置域名地址
external_url 'https://git.baidu.com'
# 配置 ssh 地址
gitlab_rails['gitlab_ssh_host'] = 'git.baidu.com'
# Nginx 授信地址
gitlab_rails['trusted_proxies'] = ['192.168.0.10'] #nginx内网ip
# SSH 端口
gitlab_rails['gitlab_shell_ssh_port'] = 10022
# 服务监听方式
gitlab_workhorse['listen_network'] = "tcp"
# 服务监听地址
gitlab_workhorse['listen_addr'] = "0.0.0.0:10080"
# 禁用自带的 nginx
nginx['enable'] = false
修改这些配置之后达到的效果:
gitlab 自带的 nginx 关闭了,换成了监听 tcp 10080 端口,这样就能使用前置 nginx 反向代理该端口。
配置了域名地址和 ssh 地址,端口,这样页面上的克隆地址就会是这里配置的地址,ssh 端口使用 10022 是到时候 nginx 上面会使用的端口,gitlab 本身还是 22 的 ssh 端口。
配置完成后重启 gitlab: gitlab-ctl reconfigure
2. 添加nginx 反代配置,http 反向代理配置,用于 http 克隆和 web 访问:
server {
listen 80;
server_name git.baidu.com;
access_log /var/log/nginx/git.baidu.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.0.10:10080;
}
}
tcp 反向代理,用于 ssh 克隆,注意 在stream模块中配置
upstream GITLAB {
hash $remote_addr consistent;
server 192.168.0.10:22;
}
server {
listen 10022;
proxy_connect_timeout 30s;
proxy_timeout 300s;
proxy_pass GITLAB;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)