将 gitea 服务迁移到 ubuntu 20.04(使用 snap 安装)
最近公司有一个台服务器到期了要销毁,但上面有一个 gitea 服务还在跑,未来也有可能要用到,故需要迁移。
本文记录一下迁移过程。
要销毁的是 ubuntu 22.04,迁移的对象是一台 ubuntu 20.04。要是使用 snap,首先用 apt 安装。
apt install snapd
snap 安装完成,再安装 gitea。
snap install gitea
PS: 要吐槽一下国内的网络,不省心,估计受到 GFW 的影响,断断续续重试了好几次才装上。
需要注意的是,安装好的 snap 服务名称叫 snap.gitea.web
,所以查看 gitea 状态的命令是:
service snap.gitea.web status
使用 lsof 命令可以看到 gitea 确实是跑在 3000 端口上的:
root@crowall.com:~# lsof -i:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
gitea 365263 root 3u IPv6 258345863 0t0 TCP *:3000 (LISTEN)
先停止新安装的 gitea 服务:
service snap.gitea.web stop
备份老数据并迁移
在老服务器上备份一下 gitea 的数据:
cd /var/snap/gitea
zip -r gitea-common.zip common
把 gitea-common.zip 下载下来,上传到新服务器。
cd /var/snap/gitea
mv common common2
unzip gitea-common.zip
解压完成后,启动新服务器上的 gitea:
service snap.gitea.web start
迁移就完成了。
配置 nginx
由于我们的 http 是用 nginx 代理的,所以在新服务器上添加一下 nginx 配置:
server {
listen 80;
server_name gitea.tony-crowall.com;
return 301 https://gitea.tony-crowall.com$request_uri;
}
server {
listen 443 ssl;
server_name gitea.crowall.com;
client_max_body_size 100m;
ssl_certificate /etc/nginx/certs/gitea.tony-crowall.com.pem;
ssl_certificate_key /etc/nginx/certs/gitea.tony-crowall.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 3;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/jpeg image/gif image/png;
gzip_min_length 512;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6].(?!.*SV1)";
location / {
proxy_pass http://127.0.0.1:3000;
}
}
重载 nginx 配置:
service nginx reload
修改 DNS 解析
最后到阿里云修改 DNS 解析,改到新服务器的 IP。
当然,先要本地改一下 host 测试一下是否可用先。