本文是自己在vps上搭建hexo博客的记录,跟随本文 可以从零开始 搭建属于自己的博客。我的配置环境是WIN10 + CentOS7
VPS购买和搭建SSR
我选择的云服务器是vulr, 网络上有许多服务商可以选择 比如 digitalOcean, 搬瓦工,或者国内的阿里云等等。
关于vps的购买和使用自建vps服务器 SSR 已经有了很好的说明。
tips:
上述教程 中 不推荐 centOS7 实测 centOS7 搭建 ssr 以及 bbr 加速 没有 问题
在 搭建好 ssr 后 重新 变动vps 同网络相关的设置 比如 bbr 加速 nginx 配置等 会导致 ssr 无法使用。 实测 通过 删除 此前添加的ssr 账户 并且重新添加 可以恢复
hexo介绍
hexo是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。hexo 有以下4个merits:
超快速度:Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染
一键部署:只需一条指令即可部署到 GitHub Pages, Heroku 或其他网站。
支持 Markdown:Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。
丰富的插件:Hexo 拥有强大的插件系统,安装插件可以让 Hexo 支持 Jade, CoffeeScript。
在本地安装hexo依赖环境
hexo 依赖于Node.js 以及Git 因此安装这两项。
首先是Node.js 通过Node.js 下载, 步骤比较简单 可以参考这篇教程
接下来是安装Git 在本机上没有的同学可以参考廖雪峰老师的教程
在本地安装hexo
我的local 环境 是win10 , 首先进入刚才安装的git
1 | cd d:/hexo #切换到你的博客目录 如果没有 新建 |
至此 hexo 就安装好了 检查localhost:5000 页面 我们能够看到默认的hexo博客
hexo 命令介绍
关于hexo 的常见使用和命令 推荐查看上文所述的hexo 官方文档
最常用的包括1
2
3
4
5
6hexo new 文章名
hexo generate #生成博客
hexo server -p 5000 # 在本地预览 -p 指定端口 默认端口为 4000
hexo deploy # 部署至服务器
hexo clean # 清理此前的内容
hexo new page pagename # 之后的教程会用到
常用简写
1 | hexo n == hexo new |
配置服务器环境
服务器环境选择 centOS7 以及 nginx
安装nginx
连接vps 接着
1 | yum install epel-release |
接下来可以在本地浏览器 输入 vps IP 测试 Nginx 是否启动
配置虚拟主机
虚拟主机可以在一台服务器上绑定多个域名,架设多个不同的网站,一般在开发机或者要部署多个小网站的服务器上需要配置虚拟主机
创建新的网站目录
Nginx 默认把网页文件存在 /var/www/html 目录。为了方便期间,我们在 /var/www/目录下为每个站点创建一个文件夹。
1 | sudo mkdir -p /var/www/blog/html |
在vim 下编辑 如下内容
1 | <html> |
调整配置文件
在 etc/nginx 目录下 使用 vim 编辑 默认 配置文件 nginx.conf
1 | vim etc/nginx/nginx.conf |
调整一下内容 注意去除所有的注释
1 | server { |
重启服务器 这时候再次访问 vps ip 因该能够看到 刚才编写的测试 index 页面
1 | sudo systemctl restart nginx |
部署本地hexo 到 vps
hexo 的部署方式 有很多 本文采用常见的git的方式 部署
在vps 上安装git 创建仓库 编写post-receive 脚本
1 | yum install git # 安装git |
编辑内容:1
2
3
4
5
6
7
8
GIT_REPO=/root/blog.git #git仓库
TMP_GIT_CLONE=/tmp/blog
PUBLIC_WWW=/var/www/blog/html #网站目录
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
1 | chmod +x post-receive #赋予脚本的执行权限 |
配置local enviroment
在本机blog目录下运行下面命令,安装git部署工具
1 | npm install hexo-deployer-git --save |
修改 hexo blog 的配置文件 _config.yml 中的部署相关内容
1 | deploy: |
之后 就可以 按照此前 所属的办法 在本地预览 以及 部署至服务器
更换主题 Next
hexo 支持许多主题 可以参看hexo 主题网站 选择 自己喜欢的主题 Next 是一个使用人数较多 功能比较好的 主题 网络上美化的教程 也比较多
首先 是安装 Next 参见 推荐使用git 的方式 安装
主题美化
下面推荐几篇博客 讲述关于 配置 next 主题
MarkDown 写作
MarkDown 是一个简单的 标记语言, 在 hexo 中 使用markdown 语法 写作。
关于写作的文本编辑工具 推荐 vscode 以及 之上的 MarkDown All in One 插件。 不用安装别的编辑器 最重要的是 支持 实时预览 对于还不熟悉 markdown 语法的新手来说 这点很重要
下面给出 讲述 markdown 语法的两个 博文
HEXO下的Markdown语法(GFM)写博客https://www.ofind.cn/blog/HEXO/HEXO%E4%B8%8B%E7%9A%84Markdown%E8%AF%AD%E6%B3%95/(GFM/)%E5%86%99%E5%8D%9A%E5%AE%A2.html
为hexo 配置SSL
SSL / TLS加密会为您的用户带来更高的搜索排名和更好的安全性。Let’s Encrypt 是一个认证机构(CA)。它可以提供免费证书,并且已经被大多数浏览器所信任。另外,通过工具 Certbot 可以让我们完全自动化证书的安装和更新。
下载Certbot
由于 Let’s Encrypt 的有效期是 90 天,到期后我们需要对证书进行续签,因此每隔一段时间就需要使用这个工具,建议将这个工具下载到 /sbin 目录。
1 | wget https://dl.eff.org/certbot-auto -O /sbin/certbot-auto |
验证域名所有权
配置 Nginx,使要获取证书的域名对应的 80 端口可以正常访问。在 /etc/nginx/nginx.conf中server加入如下代码:
1 | location ~ /.well-known { |
1 | systemctl restart nginx # 重启nginx |
使用 Certbot 签发证书
1 | /sbin/certbot-auto certonly --webroot -w /var/www/blog/html -d www.datacq.top # 注意将参数替换为你自己的 |
注意 该命令的提示信息 他告诉我们 所获得的key 的存储地址 此后将会用到 在 /etc/letsencrypt/live/www.datacq.top 下 有两个 .pem 文件
修改 nginx.conf 文件
修改如下 :
1 | server { |
配置完后 重启 nginx
设置定时自动续签
正如前文提到的,Let’s Encrypt 证书的有效期只有 90 天,因此我们需要定期的对他进行续签,我们使用 cron 来设定计划任务。
编辑 crontab 文件:
1 | crontab -e |
添加 certbot 命令:
在每天凌晨3点运行。该命令将检查服务器上的证书是否将在未来30天内过期,如果是,则进行更新。–quiet 指令告诉 certbot 不要生成输出。
1 | 0 3 * * * /sbin/certbot-auto renew --quiet |
References: