1. 程式人生 > >linux中安裝Gitlab伺服器後登入報錯502解決辦法(圖文集合)

linux中安裝Gitlab伺服器後登入報錯502解決辦法(圖文集合)

     前幾天安裝好了本地的Gitlab伺服器,都沒什麼問題,可以直接開啟。但是今天一通過 http//192.168.1.164:9090 來訪問直接報了502錯誤。如下圖:

502錯誤就是閘道器錯誤

伺服器正在作為一個閘道器或代理來完成客戶訪問所需網址的請求。 為了完成該請求,此伺服器訪問一個上游伺服器, 但收到無效響應。

這通常並不意味著上游伺服器已關閉(對閘道器 / 代理無響應), 而是上游伺服器和閘道器 / 代理在交換資料的協議上不一致。 鑑於網際網路協議是相當清楚的, 它往往意味著一個或這兩個機器的程式設計都不正確或不完全。

一、檢視官方文件

一開始想了好多的問題,查了一些資料,先查了官方文件得到如下答案。

Note that on a single-core server it may take up to a minute to restart Unicorn and Sidekiq. Your GitLab instance will give a 502 error until Unicorn is up again.

It is also possible to start, stop or restart individual components.

sudo gitlab-ctl restart sidekiq 
Unicorn supports zero-downtime reloads. These can be triggered as follows:

sudo gitlab-ctl hup unicorn 
Note that you cannot use a Unicorn reload to update the Ruby runtime.

其中這兩條指令我試了,但是任然報502錯誤,有遇到的小夥伴可以先試試:

  • sudo gitlab-ctl restart sidekiq 
  • sudo gitlab-ctl hup unicorn 

二、會不會是許可權不足

修改 /var/log/gitlab 的許可權,首先檢視裡面的許可權,如下:

使用  chmod -R 755 gitlab/  將gitlab的許可權修改:

修改以後在檢視結果如下:

修改許可權後我重新整理了好久,發現還是不可以。仍然報502閘道器錯誤。只能繼續找別的解決辦法。

三、會不會是埠的問題

     這裡我解決了502的問題,但是改了好幾次。一開始查的一些直說要我把  external_url 'http://localhost:8080'  後面的8080埠改了,我改為9090,但是後面還是不行,後面又看到一篇文章,終於可以完美解決。

首先 $ vim /etc/gitlab/gitlab.rb  修改gitlab.rb檔案的內容。如下:

一開始我就改了 external_url 後面的內容,看到 unicorn['listen']與nicorn['port'] 都被註釋掉了:

然後我把這兩個註釋的  "#" 去掉,改成如下:

external_url 'http://localhost:9090'

unicorn['listen'] = '127.0.0.1'

unicorn['port'] = 8008         尤其是這個引數,unicorn['port']為unicorn worker的工作埠,預設為8080,這裡我的8080埠被佔用的,所以這裡我要修改為 8008 。



然後我重啟gitlab,如下圖:

$ gitlab-ctl reconfigure

$ gitlab-ctl restart

然後我就解決了502閘道器錯誤,通過Chrome輸入 http//192.168.1.164:9090 可以直接訪問,如下圖:

OK,終於解決了Gitlab伺服器報的502問題了。希望可以幫到遇到同樣問題的小夥伴。