Apache-2.2

無法通過埠 80 複製到 gitlab 上的儲存庫

  • July 7, 2017

我在使用 ubuntu 伺服器的伺服器上安裝了 gitlab-ce 時遇到了一個非常奇怪的問題(我已經嘗試過使用 ubuntu 伺服器 16.04 和 17.04),它在我的本地網路上執行。我將 gitlab 與 apache2 一起使用,設置如下:

我的 /etc/gitlab/gitlab.rb 文件如下所示:

external_url "http://localhost:17391"

我的站點的 apache 虛擬主機配置文件(我們稱之為“example.com”)如下所示:

<VirtualHost *:80>
   ProxyPass / http://localhost:17391
   ProxyPassReverse / http://localhost:17391
</VirtualHost>

本質上,我正在接收 apache 正在接收的整個流量並將其重定向到 nginx。我可以在網路瀏覽器中查看“ http://example.com ”(當然,我必須通過代理訪問該站點,因為伺服器與我的電腦在同一個本地網路上執行)並且一切正常(登錄,查看儲存庫等)。當我嘗試通過在終端中執行以下命令來複製到我的電腦上的儲存庫時,我會收到一條錯誤消息:

$ git clone http://example.com/user/repoName
Cloning into repoName...
fatal: repository 'http://example.com/user/repoName' not found

但是,當我嘗試使用伺服器的本地 ip(比如說 192.168.1.100)而不是域時,它似乎可以工作:

$ git clone http://192.168.1.100/user/repoName
Cloning into repoName
Warning: redirecting to http://192.168.1.100/user/repoName.git
remote: counting objects: 3, done
remote: total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done

所以我認為它不起作用的原因可能是我在同一個本地網路上時無法通過域訪問伺服器。

這是奇怪的部分:

當我嘗試完全相同的設置,但不是埠 80,apache 偵聽另一個埠 17392 時,兩個命令都成功複製到 repo 中。

提前感謝您的幫助!

雖然我沒有找出導致這種奇怪行為的原因,但我找到了問題的解決方案(實際上:我發現首先沒有問題)。

我請朋友嘗試執行命令

git clone http://example.com/user/repoName

它工作得很好。因此,從伺服器的本地網路外部複製到埠 80 上的儲存庫的過程似乎可以正常工作,但在同一個本地網路中,必須使用本地 ip。

引用自:https://serverfault.com/questions/859172