hexo博客迁移云服务器
hexo博客迁移云服务器
前言
最近搞了个域名,并且用移动网络访问 github pages 太慢了,有时甚至根本上不去,干脆就直接把博客从 github 迁移到国内的云服务器上。
云服务器配置
安装 Git 和 Nginx 服务
1 | apt-get update |
新建一个 git 仓库的路径并修改权限
1 | mkdir /var/repo/ |
创建远程 git 仓库
1 | cd /var/repo |
配置 Nginx 文件目录
1 | mkdir -p /var/www/hexo |
修改 Nginx 的 default 文件使得 root 指向刚刚创建的 /var/www/hexo目录:
1 | vim /etc/nginx/sites-available/default |
修改完如下所示
server {
listen 80 default_server;
listen [::]:80 default_server;
#
# 中间的省略
#
root /var/www/hexo;
server_name zhaoxing.wang; # 有域名可以替换掉
重启 nginx 服务
1 | service nginx restart |
配置 git hooks
在自动生成的hexo-source.git/hooks 目录下创建一个新的钩子文件
1 | vim /var/repo/hexo-source.git/hooks/post-receive |
编辑文件,输入下面的内容。注意你原来的分支是什么,可以在hexo
的_config.yml
里的deploy
下的branch
查看,我这里是main
,后续如果git
上传不了,可以排查一下这里。
1 | git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo-source.git checkout -f main |
将文件保存后赋予可执行权限
1 | chmod +x /var/repo/hexo-source.git/hooks/post-receive |
本地配置
编辑站点配置文件_config.yml
, 将url
改成https://{云服务器IP}/
,将deploy
目标改为 {服务器用户名}@{服务IP}:/var/repo/hexo-source.git
,如果云服务器的默认端口改过,不是22,则改为ssh://user@ip:port/var/repo/hexo-source.git
的形式。
1 | deploy: |
然后就和以前的步骤一样,在个人博客目录下打开git bash
,使用 hexo clean && hexo g -d
部署。
https配置
SSL证书
配置完上面的步骤后,正常来说是可以访问的,但是我有一些加密的文章却访问不了,输入密码后没有反应。搜了一下原因,反正大概就是必须得用 https
才能正常使用,下面就继续配置一下 SSL
。
先上阿里云申请一个免费的SSL
证书,这个有详细的教程就不说了,反正下载nginx
的解压完后有两个文件,一个是key
一个是pem
,然后把这两个文件上传到/etc/nginx/cert
路径下,没有就自己建一个。
修改Nginx配置文件
打开站点配置文件(通常位于 /etc/nginx/sites-available/ 目录下)
1 | sudo vim /etc/nginx/sites-available/default |
添加HTTPS Server块(替换以下内容中的域名和路径)
1 | server { |
验证并应用配置
检查Nginx配置语法
1 | sudo nginx -t |
如果显示 syntax is ok
和 test is successful
表示配置正确
重启Nginx服务
1 | sudo systemctl restart nginx |
记得防火墙放行HTTPS
顺便说下
域名备案后要把备案号放上去,hexo
的butterfly
主题要在themes/butterfly/layout/includes/footer.pug
里添加。
1 | #footer-wrap |