Nginx配置反向代理访问 Gitlab

4

简介

gitlab 作为当前企业版本控制的有力工具,非常流行,官方提供了非常方便的安装配置方式,能让我们快速的搭建一个便捷的代码版本控制系统。
但是因为 gitlab 本身内置了 nginx,当我们的 gitlab 服务要和其他 web服务共存,就需要做一点简单的改变,以适应这种情况
第一个办法是禁用 gitlab 自带的 nginx,使用我们自己安装的 nginx,这种方法我不喜欢。
第二种办法就是 配置代理服务器,继续使用 gitlab 的内置 nginx

修改 gitlab 配置(官方安装方式下,配置文件是/etc/gitlab/gitlab.rb

  • gitlab nginx 端口监听修改
    nginx['listen_port'] = 端口号

  • gitlab 的域名
    external_url '域名'

修改完上述参数 执行命令 gitlab-ctrl reconfigure

添加 nginx 代理服务器配置

upstream  git{
    # 域名对应 gitlab配置中的 external_url
    # 端口对应 gitlab 配置中的 nginx['listen_port']
    server  域名:端口;
}


server{
    listen 80;
    # 此域名是提供给最终用户的访问地址
    server_name 域名;

    location / {
        # 这个大小的设置非常重要,如果 git 版本库里面有大文件,设置的太小,文件push 会失败,根据情况调整
        client_max_body_size 50m;

        proxy_redirect off;
        #以下确保 gitlab中项目的 url 是域名而不是 http://git,不可缺少
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 反向代理到 gitlab 内置的 nginx
        proxy_pass http://git;
        index index.html index.htm;
    }
}

如果觉得我的文章对你有用,请随意赞赏

你可能感兴趣的

forecho · 2017年10月13日

server 域名:端口; 这个方法不行啊

回复

0

可以的,需要你配置2个域名均指向这台nginx 机器。

端口对应 gitlab 配置中的 nginx['listen_port']

server 域名:端口;

可以改为:

端口对应 gitlab 配置中的 nginx['listen_port']

server IP:端口;

下面的配置也跟着改一下就行了

afei985 · 2018年03月08日
afei985 · 2018年03月08日

文章的方法是正确的,可以参考 。

回复

0

怎么设置IP呢?我现在有两个域名都映射在NG的机器上,不知道怎么去反向代理gitlab

xxxxyyyzzzz · 2018年03月12日
0

@xxxxyyyzzzz

后端 gitlab 配置文件 ,里面使用 ip 和 端口

前端nginx 里,git使用域名的配置文件 , 也使用ip:端口 的形式来配置就行了。

这样就可以: git域名 访问前端nginx 机器 , nginx 机器通过upstream 配置转向后端git机器的IP 和 端口上去。

afei985 · 2018年03月12日
0

有邮箱或者QQ吗?想详细问问

xxxxyyyzzzz · 2018年03月12日
xxxxyyyzzzz · 2018年03月14日

@afei985 有邮箱或者QQ吗?

回复

Loser · 2018年10月16日

大佬QQ多少 想详细问问

回复

载入中...