使用gitlab-ctl
命令查看GitLab各組件的運行狀態,確認服務是否正常啟動:
sudo gitlab-ctl status
若服務未運行(顯示“down”或“stopped”),可通過以下命令重啟服務:
sudo gitlab-ctl restart
此操作能解決大部分因服務未啟動導致的訪問問題。
GitLab的日志文件集中存儲在/var/log/gitlab
目錄下,涵蓋Rails應用、Nginx、Sidekiq等組件。常用查看方式:
sudo gitlab-ctl tail
sudo gitlab-ctl tail nginx/gitlab_error.log
sudo gitlab-ctl tail gitlab-rails/production.log
tail
實時追蹤):sudo tail -f /var/log/gitlab/gitlab-rails/production.log
日志中會記錄錯誤堆棧、配置異常、權限問題等關鍵信息,是故障排查的核心依據。
GitLab依賴PostgreSQL(數據庫)、Redis(緩存)、Nginx(Web服務)等組件,需確保它們均正常運行:
sudo systemctl status postgresql
sudo systemctl status redis
sudo systemctl status nginx
若某服務未啟動,使用sudo systemctl start <服務名>
啟動,并設置為開機自啟:
sudo systemctl enable <服務名>
依賴服務異常會導致GitLab無法正常工作(如數據庫連接失敗、緩存失效)。
sudo firewall-cmd --list-all # 查看當前規則
sudo firewall-cmd --permanent --add-service=http # 開放HTTP
sudo firewall-cmd --permanent --add-service=https # 開放HTTPS
sudo firewall-cmd --permanent --add-service=ssh # 開放SSH
sudo firewall-cmd --reload # 重新加載規則
lsof
或netstat
查看端口占用進程:sudo lsof -i :8080 # 替換為目標端口
sudo netstat -ntlp | grep 8080
殺死占用進程(kill -9 <PID>
)后重啟GitLab。GitLab的主配置文件為/etc/gitlab/gitlab.rb
,需確認以下關鍵配置正確:
http://your_server_ip:8080
),需與實際訪問路徑一致;gitlab_rails['db_host']
、gitlab_rails['db_username']
等參數;gitlab_rails['smtp_address']
)。sudo gitlab-ctl reconfigure # 重新生成配置
sudo gitlab-ctl restart # 重啟服務
配置錯誤(如拼寫錯誤、端口沖突)是常見故障原因。
GitLab對系統資源要求較高,需確保服務器有足夠資源:
df -h
查看磁盤使用率,若根分區或/var/opt/gitlab
(數據目錄)空間不足,需清理日志或擴容;free -h
查看內存占用,若內存不足(如小于4GB),可創建swap分區緩解:sudo dd if=/dev/zero of=/data/swap bs=512 count=8388616 # 創建4GB swap文件
sudo mkswap /data/swap # 格式化
sudo swapon /data/swap # 啟用
資源不足會導致GitLab卡頓、無法啟動。
sudo gitlab-ctl status unicorn
);upstream
地址是否正確(/etc/gitlab/nginx/conf/gitlab-http.conf
);sudo gitlab-ctl restart unicorn nginx
。/var/opt/gitlab
)有讀寫權限;setenforce 0
)測試是否為SELinux導致,若問題解決,需調整SELinux策略或永久關閉(vi /etc/selinux/config
)。/etc/gitlab/gitlab.rb
):gitlab_rails['git_max_size'] = 1024 * 1024 * 1024
(1GB);client_max_body_size
(/etc/nginx/nginx.conf
):client_max_body_size 1024M
;通過以上步驟,可系統排查CentOS上GitLab的常見故障。若問題仍未解決,建議參考GitLab官方文檔或社區論壇(如GitLab中文社區)獲取進一步支持。