如何在gitlab中配置端口转发?

Posted

技术标签:

【中文标题】如何在gitlab中配置端口转发?【英文标题】:How to configure port forwarding in gitlab? 【发布时间】:2021-12-14 00:19:23 【问题描述】:

我已经配置了 gitlab,所以我只能从特定的 IP 地址连接到它。在 gitlab.rb 文件中,我以这种方式配置了 url:

external_url 'gitlab.example.pl:2000'

还配置了ufw:

[ 1] 2000   ALLOW IN    192.169.0.1/24

当我想通过浏览器访问 gitlab 时,我必须额外输入端口 2000,所以我想将端口转发到 443。我不能只对 ufw 中的特定 IP 地址访问端口 443,因为我配置了最重要的在同一台服务器中,并且必须从任何地方访问。我尝试使用 apache2 或 ngnix 进行端口转发,但 gitlab 侦听端口 80,因此 apache2 和 nginx 无法正常工作。我也尝试在文件 gitlab.rb 中找到解决方案

nginx['listen_port'] = 443
nginx['redirect_http_to_https_port'] = 80
nginx['redirect_http_to_https'] = false

请给我一个解决这个问题的方法。

【问题讨论】:

【参考方案1】:

您不必分别为 gitlab 和mattermost 配置侦听器。你的 mattermost 和 gitlab URL 都将指向相同的 IP 地址和端口,并且都应该路由到 NGINX。

NGINX 将根据主机名标头将流量适当地路由到 gitlab 或最重要的。只需在同一 gitlab 安装中适当地为 gitlab 配置 external_url 和为最重要的 mattermost_external_url 即可。 gitlab 的 nginx 前面没有特别需要放 apache。

external_url 'https://gitlab.example.com'
mattermost_external_url 'https://mattermost.example.com'
nginx['listen_port'] = 443
nginx['listen_https'] = true

只要您的防火墙允许端口 443 上的流量到 nginx,就可以了。如果您需要将其设为特定 IP 地址,请设置 nginx['listen_address']

【讨论】:

好的,但我希望mattermost 可以在任何地方访问,并且gitlab 只能从特定IP 访问

以上是关于如何在gitlab中配置端口转发?的主要内容,如果未能解决你的问题,请参考以下文章

具有非标准 SSH 端口的 Gitlab(在具有 Iptable 转发的 VM 上)

如何在java中自动端口转发?

配置小米路由器 80 端口转发到内网

Windows端口转发(Port Forwarding in Windows)

根据用户名转发SSH连接

如何使用 Google Cloud Compute Engine 为 Node.JS 应用程序配置端口转发