第一个办法是禁用 gitlab 自带的 nginx,使用我们自己安装的 nginx,这种方法太麻烦了,之前测试过很多种,多多少少都会有些问题
第二种办法就是 配置代理服务器,继续使用 gitlab 的内置 nginx (以下是使用第二种方式)
1,修改gitlab的配置文件:/etc/gitlab/gitlab.rb
gitlab nginx 端口监听修改 nginx['listen_port'] = 端口号 gitlab 的域名 external_url '域名'
使用命令: gitlab-ctrl reconfigure
2,添加nginx解析:/usr/local/nginx/conf/vhost/gitlab.conf
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; } }