优化GitLab的网络设置需从基础配置、内核参数、反向代理、HTTPS加密、防火墙规则、监控工具等多维度入手,以下是具体步骤:
/etc/sysconfig/network-scripts/ifcfg-eth0),设置BOOTPROTO=static、ONBOOT=yes,并指定IPADDR(服务器IP)、NETMASK(子网掩码)、GATEWAY(网关)、DNS1(首选DNS,如8.8.8.8)。修改后重启网络服务(sudo systemctl restart network)以确保生效。/etc/gitlab/gitlab.rb,修改external_url为服务器的域名或公网IP(如external_url 'http://gitlab.example.com'或external_url 'https://gitlab.example.com')。若需修改默认端口(如HTTP端口从80改为8080),需同步调整nginx['listen_port']参数。修改后执行sudo gitlab-ctl reconfigure使配置生效。调整内核参数以提升网络吞吐量和并发处理能力,编辑/etc/sysctl.conf文件,添加或修改以下参数:
# 启用TCP端口复用,减少TIME_WAIT状态的连接
net.ipv4.tcp_tw_reuse = 1
# 快速回收TIME_WAIT状态的连接
net.ipv4.tcp_tw_recycle = 1
# 设置TCP等待超时时间为30秒(默认60秒)
net.ipv4.tcp_fin_timeout = 30
# 增加系统最大文件描述符数量(解决高并发连接问题)
net.core.somaxconn = 65535
# 扩大本地端口范围(避免端口耗尽)
net.ipv4.ip_local_port_range = 1024 65535
# 启用TCP窗口缩放(提升大数据量传输效率)
net.ipv4.tcp_window_scaling = 1
执行sudo sysctl -p使参数立即生效。
通过Nginx作为反向代理,可减轻GitLab直接处理静态文件的压力,提升响应速度。编辑Nginx配置文件(如/etc/nginx/conf.d/gitlab.conf),添加以下内容:
server {
listen 80;
server_name gitlab.example.com; # 替换为你的域名或IP
location / {
proxy_pass http://localhost:8080; # 转发到GitLab的默认端口(需与gitlab.rb中的nginx['listen_port']一致)
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;
}
}
重启Nginx服务(sudo systemctl restart nginx)使配置生效。
为保障数据传输安全,建议启用HTTPS。可通过Let’s Encrypt获取免费SSL证书,编辑/etc/gitlab/gitlab.rb文件,添加以下配置:
letsencrypt['enable'] = true
letsencrypt['auto_renew'] = true
letsencrypt['contact_emails'] = ['your_email@example.com'] # 替换为你的邮箱
external_url 'https://gitlab.example.com' # 确保使用https协议
执行sudo gitlab-ctl reconfigure并重启GitLab(sudo gitlab-ctl restart),即可自动申请并配置SSL证书。
确保防火墙允许GitLab所需的端口(HTTP:80、HTTPS:443、SSH:22)通过。以firewalld为例,执行以下命令:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --reload
若使用iptables,需添加对应规则(如iptables -A INPUT -p tcp --dport 80 -j ACCEPT)。
iftop(实时查看网络流量)、nethogs(按进程统计流量)、tcpdump(抓取网络包)等工具监控网络状态,及时发现异常。/etc/gitlab/gitlab.rb文件:# Unicorn worker数量(建议设置为CPU核心数的1-2倍)
unicorn['worker_processes'] = 4
# Sidekiq并发数(建议设置为CPU核心数的1-2倍)
sidekiq['concurrency'] = 25
执行sudo gitlab-ctl reconfigure使配置生效。通过以上步骤,可显著提升Linux环境下GitLab的网络性能、安全性和稳定性。需根据实际服务器配置(如CPU、内存、带宽)和业务需求(如并发用户数、CI/CD任务量)调整参数,以达到最佳效果。