学习 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
经验分享 程序员 微信小程序 职场和发展