CentOS环境下GitLab网络配置步骤
一 基础网络与防火墙
sudo hostnamectl set-hostname your_gitlab_hostnamesudo vi /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=staticONBOOT=yesIPADDR=192.168.0.100NETMASK=255.255.255.0GATEWAY=192.168.0.1DNS1=8.8.8.8DNS2=8.8.4.4sudo systemctl restart NetworkManager(或 sudo systemctl restart network,视系统而定)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=sshsudo firewall-cmd --reloadsudo systemctl enable postfix && sudo systemctl start postfixip addr show ens33ping www.baidu.com二 GitLab核心网络参数配置
sudo vi /etc/gitlab/gitlab.rbexternal_url 'http://your_domain_or_IP'external_url 'https://your_domain_or_IP'external_url 'http://your_domain_or_IP:port'sudo gitlab-ctl reconfiguregitlab-ctl start|stop|restartgitlab-ctl status、gitlab-ctl tail三 常见网络场景配置
external_url 'https://gitlab.example.com'gitlab.rb 中配置 Nginx:
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"sudo gitlab-ctl reconfiguregitlab.rb 中设置:external_url 'http://your_ip:8080'sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp && sudo firewall-cmd --reloadsudo gitlab-ctl reconfiguregitlab.rb 中按需配置(示例为端口587的STARTTLS):
gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.example.com"gitlab_rails['smtp_port'] = 587gitlab_rails['smtp_user_name'] = "your_email@example.com"gitlab_rails['smtp_password'] = "your_password_or_auth_code"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['gitlab_email_from'] = 'your_email@example.com'sudo gitlab-ctl reconfigure四 验证与排错
gitlab-ctl status(应看到多个组件为 running)ss -tulpen | grep -E '(:80|:443|:22)'nslookup your_domain_or_IPgitlab-ctl tailgitlab-ctl tail nginx/gitlab_access.log、gitlab-ctl tail nginx/gitlab_error.loggitlab-ctl restart 并检查资源占用external_url、防火墙/云安全组、证书路径与权限telnet smtp.example.com 587 测试连通性