1 min read

Gitlab 透過nginx-prxy 代理 SSH Clone

為了好管理專案所以做了一台nginx-proxy 機器,統一管理所有資源以及替換憑證,但後來遇到gitlab 在進行 ssh clone 時, 因為nginx-proxy 沒有代理22 port 造成其他人員的困擾。

在操作的同時請先確認Gitlab 是否有開放相對應的port 權限給nginx-proxy 機器,而操作步驟只要在nginx 新增一行即可。

切記在新增時 是新增在http之外 而不是在http以內。

http{
  # xxxxxx
  # xxxxxx
}

stream {
   upstream gitlab_ssh {
      server 10.0.1.1:22;
   }

   server {
      listen 8591 ;
      proxy_pass gitlab_ssh;
   }
}


而最終在進行SSH Clone 時

Origin -> [email protected]:test/prj.git

如果直接使用以下範例就會報錯

git clone [email protected]:8591/test/prj.git

要修改為

git clone ssh://[email protected]:8591/test/prj.git