内网(极空间)搭建gitlab跳板机转发端口及域名配置

背景说明

https://blog.csdn.net/GodDavide/article/details/139182475
上文说到:

我已经用docker搭好了gitlab-ce服务,但我是部署在自己的家庭nas-极空间z4pro里的,属于内网环境。
另外我有一台阿里云服务器,做跳板机。
我有一个阿里的域名,解析到我的阿里云跳板机上。

问题还原

如上,我需要用域名访问我的gitlab-ce服务,在docker run的时候,配置了hostname和external_url:
当然:也可通过修改gitlab.rb文件实现【见上文】。

docker run --detach \
  --hostname git.****.cn \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'http://git.****.cn'" \
  --publish 15443:443 --publish 15080:80 --publish 15022:22  \
  # ....以下省略,可以看上一篇文章
  # https://blog.csdn.net/GodDavide/article/details/139182475

然后,如上,我的80端口,映射15080,22端口映射15022
则就需要修改gitlab.rb 将gitlab_rails[‘gitlab_shell_ssh_port’]修改为15022
在这里插入图片描述
则此时,我的gitlab上 clone代码的地址,显示的就是正确的地址:
在这里插入图片描述
然后,我通过ssh命令,做一个端口转发,以实现内网穿透,将服务端口链接到跳板机上。这个以后再详细介绍。
然后穿透到阿里云服务器跳板机的端口,只能内网访问,需要用nginx做个转发,才能用公网ip进行访问。
到此为止,我仅仅只配置了80的映射端口15080。服务是可以通过域名访问了,
但是,我通过ssh克隆,确一直clone 失败~
ps:已经将ssh-key添加进项目秘钥库里了~
在这里插入图片描述

问题排查解决

首先想到的就是 git clone是通过ssh的22端口进行下载的,那就需要打通22端口,则又配置22端口的nginx转发。
在这里插入图片描述
发现,并不能实现
然后,回头尝试用内网地址+15022 clone,成功,用公网的ip+15222 clone失败,那就是定位到时nginx转发的问题了
然后,就考虑到22端口转发应该有特殊配置,这才发现,22端口需要处理TCP/UDP 流量。而普通的配置并不能处理TCP/UDP 流量。需要用stream模块,具体配置如下:

stream {
    upstream gitlab_ssh {
        server 127.0.0.1:15022;
    }

    server {
        listen 15922; # 不能和其他端口冲突
        proxy_pass gitlab_ssh;
        proxy_connect_timeout 1d;
        proxy_timeout 1d;
    }
}

在这里插入图片描述
此时 nginx -s reload 报错:

nginx: [emerg] "stream" directive is not allowed here in /etc/nginx/conf.d/gitlab.conf:28

解决:
1:nginx 1.9以后才有stream模块,需要升级,但现在谁还用这么老的版本~
2:nginx安装的时候,并没有安装stream模块,可以安装nginx stream模块,或者安装全部模块。

yum -y install nginx-all-modules.noarch

再次 nginx -s reload,成功。

此时git clone ssh:// 使用15922 端口,发现可以clone成功了。
最后再将gitlab.rb中的15022改成15922 即可正确显示地址了。或者改一下穿透端口和Nginx配置转发端口都可以。
ps:注意一下;阿里云服务器实例的网络安全组,一定要把你需要的端口打开哦~

  • 13
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在内网服务器上搭建GitLab,您可以按照以下步骤进行操作: 1. 首先,确保您的内网服务器上已经安装了适当的操作系统(如Ubuntu、Debian等)以及所需的依赖项(如Ruby、PostgreSQL等)。 2. 下载并安装GitLab的最新版本。您可以从GitLab官方网站(https://about.gitlab.com/install/)上获取下载链接和安装说明。 3. 按照官方文档中的说明进行安装。根据您的操作系统和版本,可能会有一些特定的配置步骤。确保在安装过程中遵循文档中提供的指导。 4. 安装完成后,通过访问服务器的IP地址或主机名来访问GitLab的Web界面。默认情况下,GitLab使用HTTPS协议,并监听端口443。如果您希望使用HTTP或其他端口,请根据需要进行配置。 5. 在首次访问GitLab时,您将被要求设置管理员账户和密码。请按照提示完成设置。 6. 一旦您成功登录GitLab管理员账户,您可以进一步配置您的GitLab实例,例如添加用户、创建项目等。 请注意,内网服务器的访问权限可能受到网络防火墙或路由器设置的限制。如果您遇到连接问题,请确保允许通过所选端口访问服务器,并检查服务器的网络配置。 此外,为了确保您的GitLab实例的安全性,建议您采取适当的安全措施,如启用双因素身份验证、设置访问控制等。详细的安全配置可以在GitLab官方文档中找到。 祝您搭建成功!如有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值