文章目录
关键词:
个人网站搭建
gitlab私有化部署实现线上发布
阿里云服务
个人域名
zerotier
注意:操作时注意操作的网关服务器还是gitlab服务器
效果展示
个人域名下可以访问私有化部署的gitlab账号
架构设计
申请免费阿里云服务器
注意:选择香港服务器。原因:域名绑定IP时,大陆服务器需要备案,试用机器不支持备案
centos7 gitlab 试用阿里云服务器
尝试连接远程服务 开放端口
centos7 gitlab 尝试连接远程服务 开放端口
申请域名 绑定云服务器
注意:过程中需要一些认证、审核,比如注册局审核,一般等待几分钟就能收到成功短信
centos7 gitlab 申请域名 绑定云服务器
组网
zerotier 官网:https://my.zerotier.com/
# 服务器下载zerotier工具
curl -s https://install.zerotier.com | sudo bash
# 加入网络
zerotier-cli join 你的网络ID
centos7 gitlab 组网
网关服务器配置转发代理
# 创建www.zhangluyue.asia.conf配置文件
# 注意:文件名称必须使用完整域名,不然下一步申请证书找不到
vim /etc/nginx/conf.d/www.zhangluyue.asia.conf
server {
listen 80;
server_name www.zhangluyue.asia; // 完整域名
# return 404; # managed by Certbot
location / {
client_max_body_size 50m;
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_pass http://172.28.0.2/; #后端 真实服务器
index index.html index.htm A1-index.html;
}
}
网关服务器配置ssl 证书
注意:免费证书有数量限制,7天内同一域名最多申请5个
证书不安全 | 证书安全 |
---|---|
![]() |
![]() |
下载Let’s Encrypt 证书工具(Certbot) 及其 Nginx 插件,自动申请和配置免费的 SSL 证书,实现网站的 HTTPS 加密访问。如果python3-certbot-nginx插件下载失败了,就尝试问AI进行手动配置。
# 在网关服务器上下载cerbot及其nginx插件
yum install epel-release
yum install certbot python3-certbot-nginx
# 自动为域名配置免费的SSL证书,并在nginx服务器上启用HTTPS加密访问
sudo certbot --nginx -d www.zhangluyue.asia
证书申请完成后www.zhangluyue.asia.conf文件被修改
问题排查
证书申请时报错:Set the `server_name` directive ti use the Nginx installer.
问题原因:.conf文件名称不是域名。需要保证文件名称与域名一致。
gitlab私有化部署搭建
centos7 gitlab私有化部署搭建 踩坑之旅-CSDN博客
gitlab服务器 external_url出口由原ip修改为域名
在gitlab服务器上,修改external_url值为相应域名
原配置external_url | 现配置external_url |
![]() |
![]() |
原gitlab external_url | 现gitlab external_url |
![]() |
![]() |
操作步骤
步骤一:修改/etc/gitlab/gitlab.rb文件
# 在gitlab服务器上编辑/etc/gitlab/gitlab.rb
vim /etc/gitlab/gitlab.rb
如果gitlab已启动,出现如图提示,选择E
修改external_url为https://www.zhangluyue.asia
步骤二:重启gitlab配置
gitlab-ctl reconfigure
由于配置的是https协议,所以gitlab默认会拉取证书。
错误排查:证书申请已达上限
如果之前拉取证书达到5个,无法申请新的证书,可以拷贝已有证书。
拷贝证书
* : 证书支持复用
# 172.28.0.2是目的zerotier ip地址
scp /etc/letsencrypt/live/www.zhangluyue.asia/fullchain.pem root@172.28.0.2:/etc/gitlab/ssl/
scp /etc/letsencrypt/live/www.zhangluyue.asia/privkey.pem root@172.28.0.2:/etc/gitlab/ssl/
修改/etc/gitlab/gitlab.rb文件
# 设置外部访问地址
external_url 'https://www.zhangluyue.asia'
# 禁用 GitLab 自带的 Let's Encrypt 自动证书生成(关键!)
letsencrypt['enable'] = false
# 手动指定已有的证书和私钥路径(指向你拷贝的文件)
nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
重启gitlab配置
gitlab-ctl reconfigure
步骤三 gitlab服务器 防火墙放行443端口
如果防火墙启动的话,gitlab服务器防火墙放行443端口
# 查看防火墙状态
systemctl status firewalld
# 允许防火墙通过8888端口
firewall-cmd --add-port=443/tcp --permanent
# 重新加载防火墙规则
firewall-cmd --reload
步骤四 网关服务器修改nginx配置
# 编辑www.zhangluyue.asia.conf文件,代理转发修改为https协议
vim /etc/nginx/conf.d/www.zhangluyue.asia.conf
# 重启nginx
systemctl restart nginx