1. 程式人生 > >GitLab+本地Nginx(兩步奏)

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。下面是按照官網給出的配置來做的。

https://docs.gitlab.com/omnibus/settings/nginx.html

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。建議努力學習英語,這對程式設計師很重要!