GitLab+本地Nginx(兩步奏)
最近找工作,閒著逛github就看到gitlab這麼個東西,說是比github功能多些。所以果斷去官網看了看,然後在自己的虛擬機器上簡單搭建了一個。一共兩步。
環境:centos6.9(node1) nginx/1.14.0
Gitlab EE的安裝:
我選擇的是免費的那個,官網的安裝步驟寫的很明白,只要按照要求複製貼上官網的命令就可以了。這裡郵箱和域名暫時不管。
Gitlab CE的安裝:
官網install頁面拖到最後,選擇清華yum源,之後按照步奏安裝。
安裝好之後。如果你的伺服器上有程序佔用了80埠(我的是因為自己的nginx佔用),那麼服務是啟動不起來的。gitlab自己綁定了一個ngxin作為webserver,監聽的應該也是80埠。我想用我自己的nginx作為server。下面是按照官網給出的配置來做的。
gitlab-ctl signal
signal可以是下面四個
reconfigure/status/start/stop 過載配置/執行狀態/啟動/停止
第一步:配置gitlab端
按照官網的說明Using a non-bundled web-server 跟著步奏走:
1.Disable bundled Nginx 使繫結的nginx失效
vi /etc/gitlab/gitlab.rb 新增:nginx['enable'] = false
2.Set the username of the non-bundled web-server user 設定gitlab的使用者名稱為你的webserver(也就是我的ngxin)的使用者名稱
還是在gitlab.rb中新增:web_server['external_users'] = ['nginx'](因為我的nginx的username是‘nginx’)
3.Add the non-bundled web-server to the list of trusted proxies 將你本地的webserver新增到gitlab的信任代理列表中
還是在gitlab.rb中新增:gitlab_rails['trusted_proxies'] = [ '127.0.0.1' ](這裡是一個數組,可以配置多個,我的就是本機ip)
4.(Optional) Set the right gitlab-workhorse settings if using Apache (可選)設定gitlab的監聽埠
還是在gitlab.rb中新增:
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "127.0.0.1:8181" 這裡8181是預設的,所以你不想變的話,這個第4步是可選的
到這裡gitlab的配置就完成了,我們過載配置檔案,執行命令:gitlab-ctl reconfigure等待完成。gitlab-ctl start/stop分別是啟動和停止命令
執行 netstat -tunlp 紅框內就是第4步配置的。這時,如果防火牆關閉著,就可以訪問http://127.0.0.1:8181了。我的防火牆不允許8181埠,所以用nginx代理
第二步:配置nginx端代理
在nginx的配置檔案(我的是/etc/nginx/conf.d/default.conf)中新增一個server
server { listen 80; server_name localhost; location /git { proxy_pass http://127.0.0.1:8181/git; } }
然後檢查nginx配置檔案 nginx -t 如果沒錯的話就過載配置 service nginx reload
之後訪問我的主機http://node1/git就會跳轉到gitlab的第一次登陸頁面,使用者名稱是root(預設),會讓你設定密碼。It's done!
至於相應版本的漢化移步https://gitlab.com/xhang/gitlab。建議努力學習英語,這對程式設計師很重要!