云服务器搭建GitLab以及解决搭建完成后的卡顿问题

本文详细记录了在阿里云学生机上搭建GitLab的过程,包括安装依赖、配置域名、解决卡顿及邮件发送问题。特别针对内存不足引起的502错误和swap分区配置进行了深入探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

云服务器搭建GitLab

因为暑期项目需要,Gitee,GitHub等多人协作的名额又少,所以选择了在自己的服务器上搭建了一个Gitlab。期间遇到了很多坑,在这里都记录下来。这里要特别感谢两篇博客,起到了极大的帮助。这里给出链接

1. Ubuntu搭建GitLab笔记

2. 阿里云,腾讯云搭建 gitlab 服务器卡顿问题解决方法

搭建环境

服务器

ESC:阿里云学生机,1核,2G。

操作系统:Ubuntu 16.04 64位

需要工具

SSH工具

操作

安装

其实一开始照着给的第一篇博得那么做就可以了,这里简单给出命令,详情参考链接:

1. 安装一些依赖:
sudo apt-get install curl openssh-server ca-certificates postfix

2.安装GitLab
sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

sudo apt-get install gitlab-ce


3.更改配置
vim /etc/gitlab/gitlab.rb
将external_url = 'http://git.example.com'修改为自己的域名地址:http://example.com,默认为80端口,如要使用其他端口后面加上端口号,如:http://127.0.0.1:8080

4.重置,过程可能会非常慢长,请静心等待。
sudo gitlab-ctl reconfigure
运行相关命令
  1. 启动:sudo gitlab-ctl start
  2. 停止:sudo gitlab-ctl stop
  3. 重启:sudo gitlab-ctl restart
后记

安装之后,傻眼了。爆出了502错误,一般是因为GitLab运行需要消耗大量的内存。而我这可怜的小小的学生机架不住造,于是就出现了502。查看CPU占用100%,然后 for a long time。然后ssh也无法连接,我的博客也打不开了,我直接重启了。如果你要重启的话,要温柔。强制重启可能数据会丢失。

重启之后,阴差阳错的可以访问了,但是巨卡啊,过一会又502了,这可不行,然后就有下一步的操作:

解决GitLab搭建后卡顿的问题

这里就用到了开头给出的第二个链接,我也就列举一下命令吧,直接照做就可以。

+. 查看 swap 分区
cat /proc/swaps

如果只有标题栏,而查不出来数据,那就是没有swap分区。下面是解决方法:

1. 创建swap分区(有的同学可能是 /data/swap ,但我是/mnt/swap)
dd if=/dev/zero of=/mnt/swap bs=512 count=8388616
    
2. 通过mkswap命令将上面新建出的文件做成swap分区
mkswap /mnt/swap

3. 查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
 -. 查看参数
cat /proc/sys/vm/swappiness
 -. 若是0设置参数
sysctl -w vm.swappiness=60
    
4. 启用分区
swapon /mnt/swap
echo “/mnt/swap swap swap defaults 0 0>> /etc/fstab

5. 再次查看swap分区是否启动,有数据则说明设置成功了
cat /proc/swaps

邮件发送不成功

部署完了,嘚瑟嘚瑟。然后赶忙邀请成员,啧啧啧,群消息@了一堆人,然后都说邮箱并没有收到消息。哎,哎,哎。继续整。? ? ?

端口设置

这里给个链接吧,介绍邮件服务的端口:邮件服务端口介绍

配置文件修改

在 /etc/gitlab/gitlab.rb中添加如下内容

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_user_name'] = "xxx@163.com"
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "smtp.163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true

### 修改gitlab配置的发信人
gitlab_rails['gitlab_email_from'] = "xxx@163.com"
user["git_user_email"] = "xxx@163.com"

注意要查看安全组对应端口号是否打开。还有就是我这是照着网上搜到的进行配置,但是我自身配置过后更新重启并没有生效。然后添加过成员后,成员只要用相应的邮箱进行注册就会自动在组内。所以暂时没有管这些了。如果有知道的,还请指点。

使用DockerCompose搭建GitLab

环境准备

/usr/local下新建docker/目录,docker下新建gitlab目录。进入 gitlab目录,新建 docker-compose.yml文件。文件内容如下:
docker.compose.yml文件

version: '3'
services:
    gitlab:
      image: 'twang2218/gitlab-ce-zh'
      restart: always
      hostname: '用自己主机的ip'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://用自己主机的ip:8099'
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
          gitlab_rails['smtp_enable'] = true
          gitlab_rails['smtp_address'] = "smtp.aliyun.com"
          gitlab_rails['smtp_port'] = 465
          gitlab_rails['smtp_user_name'] = "example@163.com"  #用自己的aliyun邮箱
          gitlab_rails['smtp_password'] = "这是密码"
          gitlab_rails['smtp_domain'] = "aliyun.com"
          gitlab_rails['smtp_authentication'] = "login"
          gitlab_rails['smtp_enable_starttls_auto'] = true
          gitlab_rails['smtp_tls'] = true
          gitlab_rails['gitlab_email_from'] = 'example@163.com'
          gitlab_rails['gitlab_shell_ssh_port'] = 2222
          unicorn['port'] = 8099
          nginx['listen_port'] = 8099
      ports:
        - '8099:8099'
        - '443:443'
        - '2222:22'
      volumes:
        - /usr/local/docker/gitlab/config:/etc/gitlab
        - /usr/local/docker/gitlab/data:/var/opt/gitlab
        - /usr/local/docker/gitlab/logs:/var/log/gitlab
启动
docker-compose up -d
最后

我服务器在重启之后,应该是没有启动指定位置下的nginx.conf 文件,所以造成了有的代理转发失效。等到重启的时候,报错,显示端口被占用。然后,丧心病狂,进程杀不死,就是GitLab的进程,就是杀不死啊。。。。然后,找了好多种方法,最后想到,把GitLab关了不就完了,然后问题解决。?,感觉自己就是个沙雕。。

最后祝愿各位同学一步到位,不折腾。也再次感谢其他博客的帮助!!!

<think>好的,用户遇到了GitLab搭建完成后无法访问的问题,需要帮助解决。首先,我需要整理可能的原因和对应的解决方案。根据提供的引用内容,特别是引用[2]中提到安装后无法访问,后来重启服务后解决,以及遇到卡住的情况需要重启服务,这些信息可以作为参考。 首先,可能的原因包括服务未正确启动、防火墙设置、端口配置错误、域名或主机名配置问题等。用户需要逐步排查这些方面。 第一步,检查GitLab服务状态。用户应该使用命令`sudo gitlab-ctl status`确认所有组件是否正常运行。如果服务未启动,可能需要重新配置并重启,如引用[2]提到的`sudo gitlab-ctl reconfigure`和`sudo gitlab-ctl restart`。 第二步,查看防火墙设置。CentOS 7默认使用firewalld,需要确保HTTP/HTTPS端口(80、443)以及自定义的端口开放。用户可以使用`firewall-cmd`命令添加端口并重新加载防火墙。 第三步,检查端口冲突。GitLab默认使用80端口,如果被其他程序占用,需要修改配置文件中的端口,并重新配置。引用[2]中提到修改端口后需要执行`sudo gitlab-ctl reconfigure`,并且可能还需要调整防火墙规则。 第四步,验证域名和主机名配置。GitLab的配置文件`/etc/gitlab/gitlab.rb`中需要正确设置`external_url`,确保与服务器IP或域名一致。修改后需要重新配置并重启服务。 第五步,检查网络连通性。用户应使用`curl localhost`或`telnet`命令测试本地访问,如果本地可以访问但外部不行,可能是服务器安全组或网络策略的问题,比如云服务器可能需要配置入站规则。 另外,引用[2]中还提到重装GitLab时可能卡在ruby_block的问题解决方法是强制结束并重启服务。这可能在服务未正确启动时相关,所以用户如果遇到卡顿情况可以尝试此方法。 最后,建议用户按照步骤逐一排查,从服务状态到网络配置,逐步排除问题。如果所有步骤都正确仍无法访问,可能需要查看日志文件`/var/log/gitlab/nginx/current`进一步诊断问题。</think>### GitLab搭建完成后无法访问的解决方案 #### 1. 检查服务状态 - **确认GitLab服务是否正常启动**: ```bash sudo gitlab-ctl status # 检查所有组件是否显示"run" ``` 如果服务未启动,执行以下命令重新配置并重启: ```bash sudo gitlab-ctl reconfigure # 重新加载配置[^2] sudo gitlab-ctl restart # 重启服务 ``` #### 2. 排查防火墙与端口 - **开放防火墙端口**(以CentOS 7为例): ```bash sudo firewall-cmd --permanent --add-service={http,https} # 开放80/443端口[^4] sudo firewall-cmd --reload # 重新加载防火墙规则 ``` - **检查端口占用**: ```bash sudo netstat -tulnp | grep :80 # 查看80端口是否被其他进程占用 ``` 若端口冲突,需修改GitLab配置文件`/etc/gitlab/gitlab.rb`: ```ruby external_url 'http://<IP或域名>:<新端口>' # 例如 external_url 'http://192.168.1.100:8080' ``` 修改后执行: ```bash sudo gitlab-ctl reconfigure sudo gitlab-ctl restart ``` #### 3. 验证域名与主机名 - **检查`/etc/gitlab/gitlab.rb`配置**: 确保`external_url`与服务器IP或域名一致: ```ruby external_url 'http://your_domain.com' # 或直接使用IP地址[^3] ``` - **更新本地hosts文件**(若未配置DNS): ```bash echo "<服务器IP> your_domain.com" | sudo tee -a /etc/hosts ``` #### 4. 网络连通性测试 - **本地访问测试**: ```bash curl http://localhost # 若返回HTML页面,说明服务正常 ``` - **外部访问排查**: - 云服务器需检查安全组规则(如AWS/Aliyun的入站规则是否开放端口)。 - 本地网络是否允许访问目标端口(企业网络可能限制特定端口)。 #### 5. 日志分析 - **查看Nginx日志**: ```bash sudo tail -f /var/log/gitlab/nginx/current # 实时监控访问日志 ``` 若日志显示`Permission denied`,可能需要修复目录权限: ```bash sudo chmod -R 755 /var/opt/gitlab/nginx ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值