Linux
Gitlab、Gitlab runner 和反向代理
我剛剛在 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 伺服器配置為指向反向代理。解決這個問題,其餘的將隨之而來。