学习 Hexo部署云服务器 这一篇就够了
一、架构图
整个流程就是本地将 *.md 渲染成静态文件,然后Git推送到云服务器的repository,服务器再通过 git-hooks 同步网站根目录
-
第一部分: 云服务器环境搭建,包括安装 Git 、Nginx配置 、创建 git 用户 。 第二部分: 本地Hexo初始化, 包括安装 NodeJS 、hexo-cli, 生成本地静态网站 第三部分: 使用Git自动化部署发布博客
二、云服务器配置
2.1、Nginx配置
1、安装nginx
yum install -y nginx systemctl start nginx systemctl enable nginx
2、创建目录存放作为远程仓库存放 *md 被渲染后的静态文件(理解为GitHub的一个远程仓库)
mkdir /mydata/website
3、配置文件
vim /etc/nginx/conf.d/blog.conf server{ listen 80; root /mydata/website; # 这里填博客目录存放的地址 server_name 120.76.55.xx; # 云服务器ip location / { } }
2.2、Git配置
让开发电脑可以通过ssh方式连接到云服务器,然后我们就可以通过命令行方式将我们的博客Push到服务器上
1、添加用户
adduser git
2、赋予权限
chmod 740 /etc/sudoers vim /etc/sudoers
3、在 git ALL=(ALL) ALL 下一行
git ALL=(ALL) ALL
4、保存退出后 将sudoers文件权限改回原样
chmod 400 /etc/sudoers
5、设置git用户的密码
sudo passwd git
6、切换到git用户,然后在~目录下创建.ssh文件夹
su git cd ~ mkdir .ssh cd .ssh
7、生成公钥密钥文件
ssh-keygen
8、其中 id_rsa.pub 就是公钥文件 我们复制一份
cp id_rsa.pub authorized_keys
9、修改它的权限
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
10、在开发电脑使用cmd的ssh链接云服务器
ssh -v git@120.76.55.xx # 输入git用户的密码
Welcome to Alibaba Cloud Elastic Compute Service !
11、回到云服务器并创建一个远程仓库,并且新建一个post-receive文件
cd ~ git init --bare blog.git vim ~/blog.git/hooks/post-receive
添加如下:远程仓库存放指向宿主机的 /mydata/website
git --work-tree=/mydata/website --git-dir=/home/git/blog.git checkout -f
12、保存退出并授予该文件可执行权限
chmod +x ~/blog.git/hooks/post-receive
三、Hexo配置
1、修改 _config.yml
deploy: type: git repo: git@120.76.55.xx:/home/git/blog.git branch: master
2、推送到远程库
hexo g --d
3、每次重新发布文章刷新nginx服务器
nginx -s reload