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;
}

posted @   zyl88  阅读(2519)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示