nginx反向代理gitlab

2018-03-12  本文已影响2971人  TroyZhang

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服务器了。

上一篇下一篇

猜你喜欢

热点阅读