将Hexo博客部署到云主机
摘要: 在云主机上搭建一个git裸仓库,然后使用nginx作为网页服务器,就可以轻松将Hexo博客通过git部署到云主机上。
这是一个忧伤的故事
我的博客KiwenLau之前部署在Coding Pages上,挺不错的,还可以一键启用HTTPS。作为一个喜欢折腾的人,我突然打算使用CDN加速一下访问速度,然而,国内的CDN服务要求网站必须备案。特意邮件问了Coding的客服,看来他们近期是不打算支持备案的,于是我就不得不考虑弄个云主机来玩玩了。
后来,Coding Pages忽然添加了跳转页面,也就是说访问我的博客的话,会先弹出5秒钟的Coding广告页面。买个Coding年费199的会员就可以去掉,也不算贵,毕竟占着人家的资源。然而,我还琢磨着备案后用CND呢…
于是,我调研了一下各个云服务的价格,1核1G的云主机一年大概都是600+,比Coding会员贵了不少。不过腾讯云最近在搞采购节,1核1G的云主机一年只要238,果断买了!
然而,备案这事貌似要折腾很久……此处省略1万字。
0. 准备工作
我的云主机的操作系统是Ubuntu Server 16.04.1 LTS 64位。不妨假设它的IP地址是152.92.13.78(我当然不会告诉你真实IP),你需要做的第一步就是配置SSH公钥登陆,这样Hexo通过git部署博客时就不需要输入密码了。
1 2 | # SSH公钥登陆将不需要输入密码 ssh root@152.92.13.78 |
这篇的博客参考了利用 GIT HOOKS 部署 HEXO 到 VPS,原文图文并茂。我做了一些优化,例如使用root用户,简化nginx配置文件,简化post-receive脚本,同时简单地介绍一下原理。为了省事,我将直接使用root用户,这是不符合安全规范的。但是,一方面我只是为了部署博客,不担心黑客干坏事;另一方面,我也做了必要的安全防范,比如配置腾讯云安全组,禁止SSH密码登陆以及配置UFW防火墙。
1. 安装git和nginx
1 2 | apt-get update apt-get install git-core nginx |
2. 配置Nginx
/var/www/blog目录用于放置生成的静态文件
1 | mkdir /var/www/blog |
编写nginx配置文件
1 | vim /etc/nginx/conf .d /blog .conf |
由于我的备案还没弄好,还不能使用80端口,所以暂时使用8080端口部署博客。
1 2 3 4 5 | server { listen 8080 ; root / var / www / blog; } |
ubuntu 16.04的init系统换成了systemd,因此使用systemctl命令来重启nginx。重启nginx
1 | systemctl restart nginx |
3. 配置Git Hooks
创建Git裸仓库
blog.git作为远程Git仓库,Hexo在本地生成的博客静态文件可以通过push与其同步。
1 2 | mkdir ~ /blog .git && cd ~ /blog .git git init --bare |
post-receive脚本将在blog.git仓库接收到push时执行。配置Hooks脚本
1 | vim blog.git /hooks/post-receive |
脚本非常简单,删除原有的/var/www/blog目录,然后从blog.git仓库clone新的博客静态文件。
1 2 3 4 | #!/bin/bash rm -rf /var/www/blog git clone /root/blog .git /var/www/blog |
给post-receive脚本执行权限
1 | chmod +x blog.git /hooks/post-receive |
4. 部署Hexo博客
修改_config.yml
1 2 3 | deploy: type : git repo: root@152.92.13.78:blog.git |
hexo先生成新的博客静态文件,然后通过git将其同步到云主机的blog.git仓库。部署博客
备案之后,将ngnix端口改为80,把server_name设为域名,然后修改DNS解析到云主机就好了。然后通过http://152.92.13.78:8080/即可访问博客。
1 | hexo d |
参考链接:
关于Fundebug
Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。
自从2016年双十一正式上线,Fundebug累计处理了6亿+错误事件,得到了Google、360、金山软件等众多知名用户的认可。欢迎免费试用!
版权声明:
转载时请注明作者Fundebug以及本文地址:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架