需求
- 搭建个人博客
- 部署到购买的服务器上和github
- 分享学习经历、生活日记、技术分享、黑科技分享
简要的大纲
- 本地部署hexo
- 部署到github
- 部署到服务器上:服务器启动web服务器nginx
- 更换主题
原理
(一)hexo
写blog可以用(目前我知道用wordpress、tale和hexo)这几代产品越来越简单,越来越轻量级。
wordpress
hexo
hexo是基于node.js制作的一个博客工具
(node.js 是一个基于 Chrome V8 引擎的 JavaScirpt 运行环境。node通过更改连接到服务器的方式,可以处理高并发任务。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,异步编程,使其轻量又高效。)
主要使用markdown编写程序
hexo会自动生成静态html页面,然后生成的html上传到服务器,不需要部署到服务器上(服务器保存的是md文章)
本地部署hexo,然后git上传至githubpages,codeing或者自己的服务器
$ npm install hexo-cli -g $ hexo init blog $ cd blog $ npm install $ hexo server强大的 API 带来无限的可能,与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成
简单的来说hexo 是个静态的页面生成、上传工具
https://www.jianshu.com/p/1c888a6b8297?utm_source=oschina-app
wordpress和hexo的区别和选择
根据有无服务器
hexo 不需要服务器,wp是需要有服务器(博客要部署在服务器上,数据库写文章)
有无编程基础
wp:只需要一点点php和mysql基础即可
hexo: 主要利用md编写文章,git进行部署
喜不喜欢折腾
wp:方便部署(直接在后台写),方便维护,插件丰富,傻瓜(不用懂代码)
hexo:个性化十足,但是搭建起来会费一点时间和经历,坑比较多。但是熟悉使用md编写文章的非常使用。基本web开发部署流程都会涉及,像javascript,git,持续集成,nginx,域名映射等,动手能力强的不容错过,很好的练手工具。
相对于 Typecho 和 WordPress 这类动态博客来说, Hexo 跟他们的最大区别就是静态了(这里的“动态、静态”主要是指其对数据处理的方式,通过数据库来动态的查询、调用、展示的叫“动态”,直接生成纯.html网页文件来供浏览的叫“静态”),从服务器端来说静态博客凭条的速度更加高效,动态博客平台因为需要数据库、服务器端的脚本语言解析的支撑在速度上相对于静态博客平台来说自然会低的(就今时今日云技术的趋于成熟和普及,动态和静态这点儿性能上的差异越来越微乎其微了,至少对于我们个人博客来说是这样的),可以说 Hexo 在这点儿上来说是完胜 Typecho 和 WordPress 的,但是有利必有弊, Hexo 是基于 Node.js{注1}的博客框架,也就是说要 Hexo 需要Node.js环境的支持才可以运行,而Node.js是需要单独在服务器上部署的,也可以理解为是 Hexo 不过多的依赖于常见的 LNMP 生产环境,甚至站点的访问只需要有一个“托管”的平台即可。可以说这方面看性价比做到了极致,一个域名+一个免费托管平台就可以搭建一个博客网站了。什么服务器版本、CPU高低、内存多少、带宽多少啥的都是浮云。
综上所述, Hexo 的性价比极致优势是最明显的,手里有个域名就可以有个博客网站了,这个优势是任何博客平台(框架)都不具备的,至于说 Hexo 的速度,这个只能说跟静态网页文件托管的第三方平台有关系。不过 Hexo 也有其“弊端”的,那就是通用性比较差,毕竟涉及服务器的一系列部署不是每个人都可以胜任的,再加上托管到第三方平台的过程也不是所有人都可以熟练掌握的,甚至很多人都不知道 GitHub、扣钉 Coding 是干啥的,这个“门槛”可以说阻挡了很多人,如果你本身就是个技术宅甚至程序猿、攻城狮一类的那么自然知道 GitHub、扣钉 Coding 这类“同性交友社区”是干啥的,这个“门槛”自然也就不是啥问题了,那么 Hexo 自然也就是你的首选了。
- 总的来说:
wp适合有服务器的非程序员使用
hexo适合程序员使用,学习记录
最重要的就是重在坚持,定期更博(记录学习笔记,心情,恋爱经历啥的)(二)nginx
概念
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强
简单的说就是一个apache服务的替代品,开放端口允许许多链接并发
图示

为了更好地理解设计,你需要了解NGINX是如何工作的。NGINX有一个主进程(master process)(执行特权操作,如读取配置、绑定端口)和一系列工作进程(worker process)和辅助进程(helper process)。

nginx与apache区别
作用:
静态http服务器(可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。
server { listen 80; # 端口号 location / { root /usr/share/nginx/html; # 静态文件路径 } }配置
(三)git
版本管理系统(自动的进行版本管理的应用程序),有本地仓库和远程仓库、分布式和集中式之分。
github就是远程仓库
步骤
希望本地部署hexo进行md文章的管理和编写,部署到github pages以及云服务器上
- (一)本地hexo部署,md编写
- (二)远程服务器部署和github pages部署