通过优化TCP内核参数,可减少连接建立时间、提高传输效率。编辑/etc/sysctl.conf文件,添加或修改以下参数:
# 减少SYN重传次数(默认5次),加快连接建立速度
net.ipv4.tcp_syn_retries = 3
# 启用窗口扩大因子(默认0),支持更大的窗口大小,提高高速网络下的传输效率
net.ipv4.tcp_window_scaling = 1
# 启用TCP时间戳(默认1),提升RTT测量精度,优化拥塞控制
net.ipv4.tcp_timestamps = 1
# 启用TCP选择性确认(默认1),减少重传数据量
net.ipv4.tcp_sack = 1
应用更改:sudo sysctl -p。
GitLab自带Nginx虽便捷,但自定义需求有限。通过外部Nginx反向代理,可实现负载均衡、SSL卸载等功能。
sudo apt-get install nginx/etc/nginx/sites-available/gitlab),内容如下:server {
listen 80;
server_name your_gitlab_domain.com; # 替换为域名或IP
location / {
proxy_pass http://127.0.0.1:8080; # GitLab默认监听端口(需与gitlab.rb一致)
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 systemctl restart nginx
/etc/gitlab/gitlab.rb):禁用自带Nginx,避免端口冲突:nginx['enable'] = false # 关闭GitLab自带Nginx
应用配置:sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart。使用ufw(Uncomplicated Firewall)限制不必要的端口访问,仅开放GitLab必需的端口(HTTP/HTTPS、SSH)。
sudo ufw allow 80/tcp # HTTP访问
sudo ufw allow 443/tcp # HTTPS访问
sudo ufw allow 22/tcp # SSH远程管理
sudo ufw default deny incoming # 默认拒绝入站连接
sudo ufw default allow outgoing # 允许出站连接
sudo ufw enable,随后检查状态:sudo ufw status。GitLab处理大量并发请求时,默认文件描述符限制(通常1024)可能导致“Too many open files”错误。需调整系统级及GitLab服务级限制。
/etc/sysctl.conf,增加最大文件描述符数:fs.file-max = 100000 # 系统全局最大文件描述符数
应用更改:sudo sysctl -p。/etc/security/limits.conf,设置用户级软/硬限制(以git用户为例,GitLab主进程用户):git soft nofile 65536 # 软限制(当前会话可临时提升至该值)
git hard nofile 100000 # 硬限制(最大允许值)
/lib/systemd/system/gitlab-runsvdir.service),在[Service]部分添加:LimitNOFILE=100000 # 服务进程的最大文件描述符数
重新加载systemd配置并重启GitLab:sudo systemctl daemon-reload
sudo systemctl restart gitlab-runsvdir
git用户,执行ulimit -n,应显示调整后的软限制(如65536)。使用Let’s Encrypt免费SSL证书,加密GitLab的HTTP流量,防止数据泄露。
/etc/gitlab/gitlab.rb,添加以下配置:letsencrypt['enable'] = true # 启用Let's Encrypt
letsencrypt['auto_renew'] = true # 自动续期
letsencrypt['contact_emails'] = ['your_email@example.com'] # 接收续期提醒的邮箱
sudo gitlab-ctl reconfigure,Let’s Encrypt会自动申请并安装证书。/etc/nginx/sites-available/gitlab),添加以下规则:server {
listen 80;
server_name your_gitlab_domain.com;
return 301 https://$host$request_uri; # 将HTTP请求重定向至HTTPS
}
重启Nginx:sudo systemctl restart nginx。GitLab官方源在国内访问较慢,可使用国内镜像(如清华大学开源软件镜像站)加速下载。
/etc/apt/sources.list.d/gitlab_gitlab-ce.list,将原内容替换为:deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/debian/ debian main
sudo apt-get update,后续安装或更新GitLab时会自动使用国内镜像。以上步骤覆盖了Debian GitLab网络设置的关键优化方向,可根据实际环境(如服务器配置、访问量)调整参数,进一步提升网络性能与安全性。