温馨提示×

ubuntu gitlab 网络配置要注意什么

小樊
39
2025-12-06 22:01:51
栏目: 智能运维

Ubuntu 上部署 GitLab 的网络配置要点

一 基础网络与防火墙

  • /etc/gitlab/gitlab.rb 中正确设置 external_url(域名或公网 IP),修改后执行 gitlab-ctl reconfigure 使配置生效。
  • 放行访问端口:
    • 使用 UFW:sudo ufw allow 80/tcp;sudo ufw allow 443/tcp;sudo ufw allow OpenSSH
    • 使用 firewalld:sudo firewall-cmd --permanent --add-service=http;sudo firewall-cmd --permanent --add-service=https;sudo firewall-cmd --permanent --add-service=ssh;sudo firewall-cmd --reload。
  • 如经 NAT/端口转发,将公网的 80/443 转发到内网 GitLab 主机;云厂商安全组同样需放行对应端口。
  • 避免端口冲突:若主机上已有服务占用 80/443,需调整 GitLab 或宿主机的端口映射与防火墙策略。

二 使用域名与 HTTPS

  • 启用 HTTPS:将 external_url ‘https://your_domain’,并按需配置内置 Nginx 证书与跳转:
    • nginx[‘enable’] = true
    • nginx[‘redirect_http_to_https’] = true
    • nginx[‘ssl_certificate’] 与 nginx[‘ssl_certificate_key’] 指向证书文件。
  • 自动证书:如需 Let’s Encrypt,在 gitlab.rb 中启用相关选项(如设置联系邮箱),并确保域名解析与 80/443 可达,再执行 reconfigure 申请与续期。
  • 证书与权限:证书路径及权限需正确,变更后执行 gitlab-ctl reconfigure 与(必要时)重启服务。

三 反向代理与端口规划

  • 与主机 Nginx 共存:在 gitlab.rb 中关闭内置 Nginx(nginx[‘enable’] = false),设置外部 Web 服务器用户(web_server[‘external_users’] = [‘www-data’]),并确保权限同步(如将 www-data 加入 gitlab-www 组)。
  • 反向代理关键头:确保传递 HostX-Real-IPX-Forwarded-ForX-Forwarded-Proto,以便 GitLab 正确生成链接与识别协议。
  • 端口规划与映射:
    • 常见做法是将容器或实例的 80/443 映射到主机高位端口(如 9080/9443),再由主机 Nginx 终止 TLS 并反向代理到这些端口。
    • 若更改了 GitLab 内部监听端口(如 nginx[‘listen_port’] 或工作进程端口),需同步更新反向代理与防火墙规则。
    • SSH 克隆端口:容器内 Git over SSH 默认 22,常映射到主机 9022;同时需在 GitLab 中告知外部 SSH 端口:gitlab_rails[‘gitlab_shell_ssh_port’] = 9022

四 连通性验证与故障排查

  • 服务状态与日志:使用 gitlab-ctl status 检查组件;用 gitlab-ctl tail nginx/gitlab_access.loggitlab-ctl tail 定位网络与权限类问题。
  • 端口与连通性:在服务器上检查监听(ss -tlnp | grep -E ‘(:80|:443|:22)’);从外部测试 curl -Iv https://your_domain;如走代理,确认代理规则与证书链无误。
  • 首次访问与凭据:首次访问 external_url 完成管理员初始化;如需查看初始 root 密码,检查 /etc/gitlab/initial_root_password(注意文件权限与及时保护)。

0