Linux

Gitlab、Gitlab runner 和反向代理

  • December 14, 2019

我剛剛在 Ubuntu 18.04 全新安裝上安裝了 Gitlab。我現在正在嘗試設置 Gitlab runner(在同一台機器上192.168.1.8)。我創建了一個項目並執行了預定義的測試,但出現以下錯誤:

Running with gitlab-runner 10.5.0 (10.5.0)
 on gitlab xxxxx
Using Shell executor...
Running on gitlab...
Cloning repository...
Cloning into '/var/lib/gitlab-runner/builds/xxxxxx/0/alexandgu/exporttool'...
fatal: unable to access 'https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@gitlab.aandraka.com/alexandgu/exporttool.git/': SSL: certificate subject name (192.168.0.1) does not match target host name 'gitlab.aandraka.com'
ERROR: Job failed: exit status 1

目前,Gitlab 支持反向代理。因此,當請求到達時,如下所示:-(192.168.1.1路由器)- 192.168.1.7(代理)- 192.168.1.8(gitlab)

我從我的網路外部注意到了這一點(192.168.1.0/24)。我可以毫無問題地訪問 gitlab:

$ curl https://gitlab.aandraka.com
<html><body>You are being <a href="https://gitlab.aandraka.com/users/sign_in">redirected</a>.</body></html>

但是,如果我從網路內部(即我的 gitlab 機器)嘗試同樣的事情。

curl https://gitlab.aandraka.com
curl: (51) SSL: certificate subject name '192.168.0.1' does not match target host name 'gitlab.aandraka.com'

好像我沒有被重定向到反向代理,而是被重定向到路由器配置頁面。

我的路由器也帶有預設網路192.168.0.0/24,所以這可能是證書主題名稱192.168.0.1而不是192.168.1.1

所以,事實證明我找到了解決方法。

我剛剛添加了我的 gitlab 域以/etc/hosts指向反向代理。

儘管如此,使用指向路由器的域訪問網路內機器的正確方法還是很有趣的。

您似乎忘記將本地 DNS 伺服器配置為指向反向代理。解決這個問題,其餘的將隨之而來。

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