問題描述
某環境需要搭建gitlab服務,gitlab搭建安裝很簡單自行百度,安裝兩種方式分別為:1、rpm包安裝 2、yum源安裝;由於服務器上已經安裝了nginx、tomcat、redis應用服務導致gitlab相關服務的端口被占用,故不能正常打開gitlab web管理頁面。
排查思路
1、檢查防火牆狀態,防火牆服務名稱:iptables和firewalld
2、檢查gitlab服務狀態及監聽端口狀態,命令:gitlab-ctl status gitlab所有服務狀態 ss -lntup查看正在監聽的tcp和udp端口狀態
3、檢查gitlab相關日志,命令:gitlab-ctl tail 實時查看日志輸出
解決步驟
1、確認gitlab服務涉及需要調整的相關端口80,8080,6379,分別為前端nginx、后端Unicorn、緩存redis
2、系統本身已經安裝了nginx和tomcat占用了80和8080端口,一個系統不允許同一個端口對應多個應用服務,
故需要修改gitlab配置文件/etc/gitlab/gitlab.rb中關於nginx和Unicorn監聽端口,默認端口為80和8080,修改內容如下:
## GitLab URL external_url 'http://xxx.xxx.xxx.xxx' ##nginx port # nginx['listen_port'] = nil修改為nginx['listen_port'] = 9091 ### Advanced settings # unicorn['listen'] = '127.0.0.1'修改為unicorn['port'] = 9092 vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb listen "127.0.0.1:9092", :tcp_nopush => true listen "/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket", :backlog => 1024 修改完成執行以下命令重新刷新配置 gitlab-ctl reconfigure
3、redis端口6379可更改可不更改,算是一個誤區,默認gitlab調用內部redis使用unix socket進行本地連接,不存在端口被占用的情況;
如果想使用tcp connection連接則才需要更改redis默認端口。
4、啟動並檢查相關服務
啟動gitlab gitlab-ctl start 查看gitlab狀態 gitlab-ctl status 查看gitlab進程 ps -ef |grep gitlab
5、打開瀏覽器訪問http://xxx.xxx.xxx.xxx:9091進入gitlab登錄頁面
補充說明
1)gitlab目錄配置說明 /etc/gitlab/gitlab.rb #配置文件 /var/opt/gitlab #gitlab相關服務配置存放目錄以及gitlab倉庫數據存放目錄 /var/log/gitlab #gitlab日志存放目錄 2)gitlab命令 gitlab tail #查看實時日志 gitlab tail [gitlab service-name] #查看特定服務日志 gitlab restart #重啟所有服務 gitlab restart [gitlab service-name] #重啟特定服務