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