Nginx配置反向代理访问 Gitlab

简介

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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐