沉铝汤的破站

IS LIFE ALWAYS THIS HARD, OR IS IT JUST WHEN YOU'RE A KID

记一次博客迁移过程

0x00 前言


迁移一下博客,本来还想配置一下负载均衡,让两台服务器都有网站,最后还是算了,另一台只剩下一个月了,用来搞点别的好了。

感谢海子哥,把阿里云(或者我现在应该叫你’套路云’)的新用户专享机会让给我,让我可以60首年用到2核2G的服务器

记一次博客迁移的过程

安装Git

apt install git

配置公钥

找到开发机上的公钥id_rsa.pub,复制内容后添加到云服务器上的~/.ssh/authorized_keys

添加Git用户

adduser git

修改Git用户登录shell

/home/git:/bin/bash改为/home/git:/usr/bin/gti-shell,git-shell登陆后会自动退出,这一步是出于安全考虑,也可以不做。

创建仓库

mkdir myrepo,然后进入,初始化 git --bare init hexo.git一个裸仓库

创建站点文件

mkdir /var/hexo,然后赋权chmod +777 -R /var/hexo

创建钩子

cd /var/myrepo/hexo.git/hooks,然后新建一个post-receive,还要赋予执行权限chmod +x post-receive,vim post-receive,添加如下内容:

#!/bin/bash
git --work-tree=/var/hexo --git-dir=/var/myrepo/hexo.git checkout -f

做完后赋予权限chown -R git:git /var/myrepo/hexo.git

修改hexo配置

deploy:
  type: git
  repo: git@ServerIP:/var/myrepo/hexo.git
  branch: master

上传

hexo d, 然后检查/var/hexo目录下是否上传成功

配置Nginx

server
{
    listen 80 default;
    listen 443 ssl http2; #配置https
    server_name chenlvtang.top;
    charset utf-8;
    index index.html;
    root /var/hexo;
    error_page 404 = /404.html;

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    #杂七杂八
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico|)$
    {
        expires      30d;
        error_log /dev/null;
        access_log off;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log off;
    }
    access_log  /tmp/log/access.log;
    error_log  /tmp/log/chenlvtang.top.error.log;
}

这里设置了default,访问IP的时候默认会访问这个站点,但是可能会和nginx.d中的 include /etc/nginx/sites-enabled/*冲突,所以记得注释掉。

配置SSL

上传SSL配置的key和pem到某个文件

if ($server_port !~ 443){ #强制https
    rewrite ^(/.*)$ https://$host$1 permanent;
}
ssl_certificate    /xxx/foo.pem;
ssl_certificate_key   /xxx/bar.key;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497  https://$host$request_uri;

域名解析

登上购买域名的账号,把域名重新解析到新服务器,等上个几分钟,ping一下看看,有没有更改IP成功。至此,迁移就差不多结束了😋。