CentOS8.2 安裝Gitlab,以及gitlab 安裝提示502詳細解決過程


GitLab官網:鏈接地址

前言:

gitlab分為兩個版本ee版和ce版,ee版是30天試用的企業版,到期后需要給錢。

ce版為免費版,本人以ce版為例。

本文安裝過程和官方安裝過程稍有不同,主要在於沒有使用官方的安裝腳本,官方安裝腳本鏡像拉取實在太慢,改為從清華源拉取鏡像。

1.安裝依賴
sudo dnf install -y curl policycoreutils openssh-server openssh-clients

 

2.啟用sshd服務

sudo systemctl enable sshd

 

3.開啟sshd服務

sudo systemctl start sshd

 

4.查看sshd服務適用運行成功

sudo systemctl status sshd

 

5.查看防火牆狀態,可以看到防火牆狀態為dead

sudo systemctl status firewalld

 

 6.如果步驟5狀態為dead,則需要開啟防火牆,如果沒任何提示代表開啟成功

systemctl start firewalld

 

7. 再次查看防火牆狀態為active(running)表示防火牆正在運行

sudo systemctl status firewalld

 

 

8.將http和https服務添加到防火牆

#--permanent表示永久生效,如果不加重啟機器后就不再生效
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
#重新加載防火牆配置
sudo systemctl reload firewalld

 

9.因為gitlab官方安裝腳本拉取鏡像很慢,所以從清華鏡像拉取最新的包。

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/gitlab-ce-14.3.3-ce.0.el8.x86_64.rpm

 

10.安裝剛才下載下來的安裝包

rpm -i gitlab-ce-14.3.3-ce.0.el8.x86_64.rpm

 

 11.編輯ip和端口,

vim /etc/gitlab/gitlab.rb

 

 12.重新加載gitlab配置信息,這一步比較慢需要等久一點

gitlab-ctl reconfigure

 

13.重啟gitlab

gitlab-ctl restart

 

 14.之后在本機瀏覽器輸入地址 http://162.14.66.150:8080 提示502錯誤!

 

15.gitlab官方文檔中說的是當CPU到達100%時會返回502錯誤,這個錯誤來自包Unicorn。

由於我們安裝的gitlab是14.3.3版本,Unicorn包已被棄用,改名為Puma,所以我們可以初步判斷是Puma包導致的502報錯。

參考鏈接:502 Gateway Timeout after Unicorn spins at 100% CPU

 

 

16.輸入命令top查看cpu占用狀態,發現command為bundle這個操作占用了99.3%的cpu,這明顯是不合理的。

 

 17.實時打印 puma包的日志,發現輸出"Errno::EADDRINUSE: Address already in use - bind(2) for "127.0.0.1" port 8080"。原因就很清晰了,是因為8080端口被占用。

#實時打印puma包的日志
sudo gitlab-ctl tail puma

 

15.查看占用端口為8080並且狀態為LISTEN的進程

發現8080端口被進程Id:58799 進程名:nginx:maser 的進程占用了,這是gitlab自帶的nginx默認的監聽端口。

而包puma也需要監聽8080端口,產生了沖突導致puma 執行build失敗。

puma包在執行build失敗之后會無限重試,導致了死循環把cpu跑到了100%。

netstat -anp |grep 8080

 

16.接下來只需要給puma包設置默認監聽端口不是8080就好了,我這里設置為8081

vim /etc/gitlab/gitlab.rb

新增

puma['port'] = 8081

 

 17.依次執行下面命令

#停止gitlab
gitlab-ctl stop

#重新加載gitlab配置
gitlab-ctl reconfigure

#重新運行gitlab
gitlab-ctl restart

#監視cpu狀態
top

 

18.可以看到兩個CPU占用非常高的進程,此時如果您在本機訪問搭建的gitlab地址,依舊會提示502。

因為此時gitlab正在構建,我們什么都不需要做。只需要等到這兩個CPU占用很高的進程CPU降低后就可以訪問了。

 

 

 

注:如果遠程訪問不是提示502錯誤,而是提示連接失敗之類的。80%都是因為服務器防火牆限制或者雲服務器提供商防火牆限制。

 

#停止服務器防火牆
sudo systemctl stop firewalld

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM