美文网首页
nginx反向代理gitlab

nginx反向代理gitlab

作者: TroyZhang | 来源:发表于2018-03-12 22:32 被阅读2971次

    gitlab本身是自带nginx的,但有的时候我们希望使用外部已有的nginx,比如我们希望外部的nginx可以反向代理gitlab/redmine/confluence等软件,用户只需要访问外部nginx的端口就可以了。

    配置gitlab

    编辑gitlab配置文件

    $ vim /etc/gitlab/gitlab.rb
    
    # 让gitlab的内置nginx监听7000端口
    nginx['listen_port'] = 7000
    
    # 设置gitlab的访问路径(是通过外部nginx反向代理访问的)
    external_url 'http://域名/gitlab'
    

    让配置生效

    # 让配置生效
    $ gitlab-ctl reconfigure
    $ gitlab-ctl restart
    

    配置外部nginx

    编辑nginx配置文件

    $ vim /etc/nginx/nginx.conf
    
    http {
        ...
        upstream git {
            server  localhost:7000;
        }
        server {
            listen 80;
            server_name 域名;
            location /gitlab {
                # 设置最大允许上传单个的文件大小
                client_max_body_size 1024m;
                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/gitlab;
                index index.html index.htm;
            }
        }
        ...
    }
    

    重启nginx

    # 检测配置是否正确
    $ nginx -t
    
    # 重启nginx
    $ nginx -s reload
    

    这样就可以通过访问 http://域名/gitlab 来访问gitlab服务器了。

    相关文章

      网友评论

          本文标题:nginx反向代理gitlab

          本文链接:https://www.haomeiwen.com/subject/yynofftx.html