1. 基础网络配置(系统层面)
在Debian系统上配置GitLab前,需确保系统网络连接正常,主要包括静态IP设置(可选)、DNS配置及网络接口激活。对于Debian 12及以上版本,推荐使用netplan管理网络:编辑/etc/netplan/01-netcfg.yaml文件,配置以太网接口(如ens4)的静态IP、子网掩码、网关及DNS服务器,示例如下:
network:
version: 2
renderer: networkd
ethernets:
ens4:
dhcp4: no
addresses: ["192.168.1.100/24"]
gateway4: 192.168.1.1
nameservers:
addresses: ["8.8.8.8", "8.8.4.4"]
应用配置:sudo netplan apply。若使用旧版本Debian,可通过编辑/etc/network/interfaces文件配置静态IP。
2. GitLab外部URL设置
外部URL是GitLab的核心网络标识,决定了用户访问的地址。编辑GitLab主配置文件/etc/gitlab/gitlab.rb,找到external_url参数并设置为服务器IP或域名(如http://192.168.1.100或http://gitlab.example.com)。该参数影响GitLab生成的链接(如仓库URL、邮件通知中的链接)的有效性,配置完成后需执行sudo gitlab-ctl reconfigure使更改生效。
3. 防火墙规则配置
GitLab默认使用80(HTTP)和443(HTTPS)端口,需通过防火墙允许外部访问。若使用ufw(Ubuntu防火墙工具),执行以下命令:
sudo ufw allow 80/tcp # 允许HTTP访问
sudo ufw allow 443/tcp # 允许HTTPS访问
sudo ufw reload # 重新加载防火墙规则
若GitLab配置了自定义端口(如通过nginx['listen_port']修改为8080),需同步允许该端口:sudo ufw allow 8080/tcp。
4. 反向代理配置(可选,推荐)
为提升安全性或整合现有Web服务,可使用Nginx作为GitLab的反向代理。步骤如下:
sudo apt-get install nginx;/etc/nginx/sites-available/gitlab),添加反向代理规则:upstream gitlab {
server 127.0.0.1:8022; # GitLab Workhorse默认端口(需与gitlab_workhorse['listen_addr']一致)
}
server {
listen 80;
server_name gitlab.example.com; # 替换为域名或IP
location / {
proxy_pass http://gitlab;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/ → sudo nginx -t(测试配置)→ sudo systemctl restart nginx;/etc/gitlab/gitlab.rb,设置external_url 'http://gitlab.example.com'及nginx['listen_port'] = 8022(避免与Nginx端口冲突),然后执行sudo gitlab-ctl reconfigure。5. HTTPS配置(可选,增强安全性)
为支持加密访问,可配置GitLab使用SSL证书。有两种方式:
/etc/gitlab/gitlab.rb,启用Let’s Encrypt并设置联系邮箱:letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
执行sudo gitlab-ctl reconfigure后,GitLab会自动申请并部署证书;certificate.pem)和私钥(private.key)上传至服务器,编辑/etc/gitlab/gitlab.rb设置证书路径:ssl_certificate '/path/to/certificate.pem'
ssl_certificate_key '/path/to/private.key'
执行sudo gitlab-ctl reconfigure应用配置。6. 邮件服务网络配置(可选,用于通知)
若需GitLab发送邮件通知(如密码重置、合并请求提醒),需配置SMTP服务器。编辑/etc/gitlab/gitlab.rb,设置SMTP参数:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com" # SMTP服务器地址(如163邮箱)
gitlab_rails['smtp_port'] = 25 # SMTP端口(通常为25、465或587)
gitlab_rails['smtp_user_name'] = "xxuser@163.com" # SMTP用户名(邮箱地址)
gitlab_rails['smtp_password'] = "xxpassword" # SMTP密码(授权码)
gitlab_rails['smtp_domain'] = "163.com" # SMTP域名(如163.com)
gitlab_rails['smtp_authentication'] = "login" # 认证方式(login/plain/cram_md5)
gitlab_rails['smtp_enable_starttls_auto'] = true # 是否启用STARTTLS加密
gitlab_rails['gitlab_email_from'] = "xxuser@163.com" # 发件人邮箱
执行sudo gitlab-ctl reconfigure后,GitLab即可发送邮件。