Gitlab、Gitlab runner 和反向代理

Gitlab、Gitlab runner 和反向代理

我刚刚在全新安装的 Ubuntu 18.04 上安装了 Gitlab。我现在正在尝试设置 Gitlab 运行器(在同一台机器上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:[email protected]/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.1192.168.1.1

答案1

所以,我终于找到了解决方法。

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

尽管如此,使用指向路由器的域来访问网络内部机器的正确方法仍然很有趣。

答案2

看起来您忘记配置本地 DNS 服务器以指向反向代理。修复该问题,其余问题便会迎刃而解。

相关内容