hexo博客部署于私有云服务器端——让你的博客上高速
云服务器版本:Ubuntu_Server-20.04.LTS_64bit
主题:Buttertly_3.8.4
远程SSH登录终端: Termius
温馨提醒:此教程中未对网站备案进行描述,因此部署在私有的服务器端,目前只可以通过外网ip登录。
前几天心血来潮,年过半辈的我,亲“脚”踩坑部署博客,但是哈。由于起初博客是部署在github仓库,其中又添加了很多的图片,安装了些许渲染插件(当然这些操作,对于我这样一个世俗的凡人来说,都是必定不可丢弃掉的选择呀),这就使整体的访问速度变的 慢得离谱。这当然也是正常现象。如想白嫖国外的github服务器就得承受国内访问滴折磨。
那么就有小伙伴,就问了 (好吧这个过程自己幻想出来的额),有没有**国内白嫖滴仓库**呢?哎!这还真的有,就比如国内的Gitee,Coding(Coding现在与腾讯联合咯),通过这些云仓库来访问也为之不错。
由于通过这些仓库来部署静态网页不需要支付费用,这也导致了网页的访问速度迟缓的随机性,稳定性这方面的质量难以保证。
- 前几天正好在腾讯云购置了一台云服务器,当然因为其本身是轻量级,所以包年并不是很贵好像只有60元。由此遍可以通过把本地博客部署在这台私有的云服务器上,便可以极大的提高博客的访问速度。
- 正餐开始咯
阿里云选购一款云服务器
阿里云与腾讯云对于新用户都有很好滴优惠哈,所以注册后可以直接申请一个体验版滴
-
此时便就有一款为期一个月的免费版云服务器
注意:第一次登录远程SSH需要修改密码重置默认为root用户
- 此时便可以通过词公网ip远程登录SSH该服务器咯
阿里云终端登录
Termius终端登录
服务远程登录安装必要组件
服务器安装 Git 和 Nginx
-
Nginx部署便就可以通过公网ip来在异地浏览器中访问云服务器中部署的网站
-
Git通过此组件把本地部署的博客推送到远端云服务器中
-
首先,通过终端登录云服务器分别执行一下两个命令,完成Git与Nginx的安装
apt-get update
apt-get install git nginx -y
服务器创建Git仓库
- 服务器与本地的原理一样也需要创建一个Git仓库,用于部署网站,以下有四步分别为:
该路径是Git仓库的路径
mkdir /var/repo/
- 仓库权限修改权限
chown -R $USER:$USER /var/repo/
chmod -R 755 /var/repo/
- 创建远程git仓库,这里我自己选择仓库名叫myblog(名称可随意)与本地创建Git仓库同理
cd /var/repo
git init --bare myblog.git
-
此时就可以看到刚才初始化创建的git仓库
ls /var/repo
服务器配置Nginx
- 创建目录并修改目录所有权和权限
mkdir -p /var/www/hexo
chown -R $USER:$USER /var/www/hexo
chmod -R 755 /var/www/hexo
- 修改 Nginx 的 default 文件,让其 root 指向刚刚创建的 /var/www/hexo目录
vim /etc/nginx/sites-available/default
修改为root /var/www/hexo
- 然后重启 Nginx 服务
service nginx restart
此时已经搭建好了自己的nginx服务器,在本地的计算机浏览器中输入公网的ip地址可访问到以下界面
- nginx服务器的默认加载界面,如果不放心在其nginx可进行修改验证自己的部署
配置钩子文件(hooks)
- 执行以下命令,新建钩子文件,其中 myblog.git 文件是上文创建的git仓库
vim /var/repo/myblog.git/hooks/post-receive
post-receive该文件是通过vim创建的一个空白文件,只需要添加以下内容,退出保存即可。
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/myblog.git checkout -f
-
同样该文件也需要添加可执行权限,输入以下指令即可
chmod +x /var/repo/myblog.git/hooks/post-receive
部署本地 Hexo 到远程服务器
-
将服务器地址添加到受信任的站点,在本地PC的任意目录从服务器上把仓库克隆下来
git clone root@{云服务器IP}:/var/repo/myblog.git
这里需要注意一下哈,{云服务器IP}这里只需要输入自己的云服务器的外网登录IP地址。通过git把远程仓库部署到PC机(windows10)的本地。
如果自己已经在本地搭建好博客那么这一步可以直接跳过不需要执行。
因为我们最终的目的是把本地的博客部署在自己的云服务器中,以提高自己博客的访问速度。直接修改站点配置文件,通过Git推送到自己的云服务器即可。那么废话结束,最后的一步,本地推送。
本地博客远程推送
修改配置文件
修改配置文件 _config.yml,将 url 改成 https://{云服务器IP}/
将 deploy 目标改为 {服务器用户名}@{服务IP}:/var/repo/myblog.git
- delploy站点配置这里可以添加多个远端仓库,具体添加的格式可以参考一下:
-type:git
-repo:
{远端推送仓库地址}
-branch:{远端仓库分支}
本地博客推送
- 此时只需要在自己的博客主目录打开gitbase输入hexo clean && hexo g && hexo d 完成推送即可
效果预览
- 在浏览器中输入自己的云服务器公网ip即可查看到发布的博客状态。(有木有感脚到速度大幅度提升赖)
- 当然在博客推送到远程仓库前最好,调用本地的服务器先对博客进行查看预览调整,以达到最终理想效果后再远程推送,提高推送效率
现在的部署的博客只能通过IP访问 ,也购买一个域名,通过域名解析访问也可以达到同样的目的。无论是个人还是其他机构网站只要发布,都需要进行**网站备案,否则域名解析的IP在链接的时候,会提醒安全问题** 导致无法访问。
关于**域名解析** 与**网站备案** 这块后续会发布一份新的教程,以供小伙伴们参考。