在gitlab的安装过程中,有一步是设置external_url

顾名思义,在这里配置的是从外部机器访问gitlab的ip或者域名,后面可以加端口号。

如果gitlab与访问它的客户机在同一网络,或者gitlab就在公网上,这么设置是可以的。

但是,如果gitlab部署在DMZ,需要通过防火墙映射出去,这时如果望文生义的将external_url设置为外网IP+端口或者外网域名,就会导致无法访问GITLAB。

究其原因分析如下:

1、external_url配置的是客户机访问gitlab的ip、域名、端口。而通过防火墙映射的时候,实际是防火墙在访问它,而不是外网终端访问它。所以,external_url针对的应该是防火墙访问它时的IP、域名或者端口,因此,不要设置外外网IP+端口或者外网域名。

 

2、外网访问时,访问的是防火墙映射出来的IP、域名或者端口,不需要在external_url中设置。

示例:

在内网192.168.1.222主机上部署了gitlab

使用动态DNS 域名 abc.gicp.net

对外端口为9999

在防火墙上进行映射,abc.gicp.net 9999映射到192.168.1.222 80

那么gitlab的external_url就应该是http://192.168.1.222,默认80端口

这样,从互联网就可以通过abc.gipc.net:9999访问部署在内网的gitlab了。

 

有人会问,这样设置之后,在新建项目时,项目的url是abc.gipc.net还是192.168.1.222呢?

我们会惊喜地发现,项目url不是external_url地址,而是防火墙映射出去的访问地址或域名。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐