第一個辦法是禁用 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; } }