玩命加载中 . . .

Hexo博客迁移云服务器


背景:我的博客是部署在github国外和coding国内的。自2021年12月30日,coding正式停止了静态网站托管服务,因此不得不换个国内的站点。

有尝试过Vercel,确实好用,但是新版Vercel和老的github博客无法兼容,导致连接老github博客仓库报404,至今不知道什么问题,如果有知道的可以评论区告诉我,不甚感激!

目前只能通过Vercel连接第三方仓库https,然后输入github老仓库的https地址,就可以正常访问了,但这有个问题:Vercel会在github新建一个仓库托管你的博客,我们不得不将博客部署在Vercel新仓库中,实现每次部署Vercel都会自动更新最新的页面。这就导致我们被迫迁移了新仓库,这会让我们的valine评论和卜算子访客量都清零了。

于是一不做二不休,我干脆弄个云服务器,将博客部署到云服务器上一步到位。于是,就有了下面的迁移云服务器。也让我学到了怎么购买云服务器和申请证书,配置nginx的https的方式。

精彩抢先看

本篇包含以下干货

  1. 阿里云购买云服务器(试用免费版)
  2. 云服务器的使用
  3. Hexo迁移云服务器
  4. 阿里云申请ssl证书

正片开始

阿里云购买云服务器

其实云服务器无所谓哪个华为云、腾讯云还是阿里云,这里我域名是提前在阿里云买的,于是也在阿里云买了云服务器,当然为了练习先领用了个免费的服务器1个月(白嫖使我快乐~hhh)

  1. 阿里云ECS试用中心
  2. 下方领取试用机型,我领取的是ECS共享型n4,1个月
  3. 操作系统选择熟悉的centos7.6,带宽选择最高的5Mbps
  4. 购买后进入控制台

云服务器的使用

  1. 点击左侧,选择云服务器ECS
  2. 点击实例,也就是你的云服务器
  1. 初次进去后可能会没有实例,这是因为你没有选择区域
    1. 点击上方的区域,选择你云服务器所在的区域。就可以看到你的机器和公网IP
  1. 点击管理,进入云服务的管理界面

  2. 有3处需要配置

    1. 重置实例密码,就是你的服务器的root密码,要求有大小写、数字、符号

    2. 进入安全组,增加80和443的入口端口,按照现有的端口配置配就行(阿里云是由安全组限制的,就像操作系统的防火墙,因此我们需要打开80和443端口,为后续Nginx做准备)。

      这里如果没有设置安全组443,在后续的Nginx配置https时,会访问不了

    3. 远程连接,选择VNC连接方式,设置VNC密码,要求有大小写、数字,必须为6位

  3. 连接,使用moba或者xshell等远程连接工具,连接公网IP,输入密码连接即可。

Hexo迁移云服务器

  1. 安装nginx
yum install nginx 安装nginx

systemctl start nginx 开启nginx服务

systemctl enable nginx 跟随系统启动

用公网IP访问,如果显示nginx或是centos的界面的话就是没问题的

  1. 新建存放博客的目录
cd /home

mkdir www

cd www

mkdir website
  1. 安装git
//安装Git
yum install git
  1. 新建用户并修改权限
adduser git

chmod 740 /etc/sudoers

vim /etc/sudoers

保存退出

修改权限

chmod 400 /etc/sudoers
  1. 创建公钥

    sudo passwd git  //设置git密码
    su git    //切换到git用户
    cd ~    //切换目录
    mkdir .ssh    //新建.ssh文件夹
    cd .ssh    //进入文件夹
    vim authorized_keys    //创建文件
    将主机windows下的ssh公钥内容粘贴进去,位置在C:\Users\用户\.ssh\id_rsa.pub
    保存退出
    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    
  2. 测试

    使用主机windows,以管理员的身份进入cmd命令行

    ssh -v git@你的公网IP
    

    期间会让你输入yes

    如果提示 Welcome ……就代表不需要密码就可以登录了,成功了

  3. 创建git仓库(钩子)

    cd ~
    git init --bare blog.git
    vi ~/blog.git/hooks/post-receive
    

    输入

    git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
    

    保存退出

    修改权限

    chmod +x ~/blog.git/hooks/post-receive
    
  4. 部署

    1. 修改hexo的配置文件_config.yml

      deploy:
        type: git
        repo: git@你的服务器公网IP:/home/git/blog.git
        branch: master
        message: 
      

      问题:出现–ssh:connect to host centos-py port 22: Connection refused

      解决:

      检查配置文件有没有配置对,我这里repo多了个”:“

    2. 部署

      Hexo clean
      Hexo g
      Hexo deploy
      
  5. 修改nginx配置文件

    cd /etc/nginx/
    vim nginx.conf
    
    server {
        listen       80; #端口号
        server_name  localhost; #公网ip
    
        location / { #访问路径配置
            root   /home/www/website; #目录
            index  index.html index.htm; #默认首页
        }
    
    nginx -s reload 重启nginx
    
  6. 访问

    这时通过ip访问即可

问题:访问时出现nginx403 forbiden

原因:因为文件夹权限不足,导致git上传文件没有正确上传。

解决方法:

cd home
chmod 777 www
chmod 777 website/

申请ssl证书与配置https

背景:我们已经迁移了博客,但是没有配置域名,如果需要域名访问云服务器,两种方式,

  1. http,这种方式国内服务器需要备案,备案又需要服务器有效期至少3个月,我是免费1个月试用,因此没有采取这种方式
  2. https,这种方式需要申请ssl证书,配置即可,我们采取这一种

2021年后,ssl证书购买的步骤分为两步,1.购买资源包,相当于个卡包,2.购买证书,相当于卡

阿里云购买证书

  1. 购买资源包,相当于个卡包

阿里云地址

  1. 购买证书,相当于卡

    看第二步:配置nginx

腾讯云购买证书


文章作者: 小苏
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小苏 !
评论
  目录