基于阿里云搭建自己的的Hexo博客
1. 博客的架构
先搞明白Hexo博客从搭建到自动发布的架构,才能更好的理解我们每一步进行的操作。
不然只跟着步骤过了一遍,却不知道为什么这么做。
首先看这张架构图:
整个流程就是本地将 *.md
渲染成静态文件,然后Git推送到服务器的repository
,服务器再通过 git-hooks
同步网站根目录。
2. 整个搭建流程
前提条件:阿里云服务器
第一部分: 服务器环境搭建,包括安装 Git
、Nginx
配置 、创建 git
用户 。
第二部分: 本地Hexo
初始化, 包括安装 NodeJS
、hexo-cli
, 生成本地静态网站
第三部分: 使用Git自动化部署发布博客
3. 服务器环境搭建
3-1.安装Git和NodeJS (CentOS 环境)
yum install git #安装NodeJS curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
NodeJS 安装可以参考: Linux安装NodeJS
3-2. 创建git用户
adduser git chmod 740 /etc/sudoers vim /etc/sudoers
找到以下内容
## Allow root to run any commands anywhere root ALL=(ALL) ALL
在下面添加一行
git ALL=(ALL) ALL
保存退出后改回权限
chmod 400 /etc/sudoers
随后设置Git用户的密码,
#需要root权限 sudo passwd git
切换至git用户,创建 ~/.ssh
文件夹和 ~/.ssh/authorized_keys
文件,并赋予相应的权限
su git mkdir ~/.ssh vim ~/.ssh/authorized_keys #然后将电脑中执行 cat ~/.ssh/id_rsa.pub | pbcopy ,将公钥复制粘贴到authorized_keys chmod 600 ~/.ssh/authorzied_keys chmod 700 ~/.ssh
然后就可以执行ssh 命令测试是否可以免密登录
ssh -v git@SERVER
至此,Git用户添加完成
3-3. Nginx安装和配置
我是用的是lnmp 一键安装包,nginx安装教程一大堆,就不再叙述。主要看nginx配置。
找到nginx的配置文件,修改配置如下:
server { listen 80; #listen [::]:80; server_name www.seekbetter.me seekbetter.me; index index.html index.htm index.php default.html default.htm default.php; #这里要改成网站的根目录 root /path/to/www; include other.conf; #error_page 404 /404.html; location ~ .*\.(ico|gif|jpg|jpeg|png|bmp|swf)$ { access_log off; expires 1d; } location ~ .*\.(js|css|txt|xml)?$ { access_log off; expires 12h; } location / { try_files $uri $uri/ =404; } access_log /home/wwwlogs/blog.log access; }
4. 本地Hexo程序
4-1:初始化Hexo博客
首先要安装 hexo-cli
,安装hexo-cli
需要 root 权限,使用 sudo
运行
sudo npm install -g hexo-cli
然后初始化Hexo程序
cd ~/Documents/code hexo init blog
等执行成功以后安装两个插件, hexo-deployer-git
和 hexo-server
,这俩插件的作用分别是使用Git自动部署,和本地简单的服务器。
hexo-deployer-git帮助文档
hexo-server帮助文档
cd blog npm install hexo-deployer-git --save npm install hero-server
4-2. 生成自己的第一篇文章 hello world !
使用 hexo new <文章名称>
来新建文章,该命令会成成一个 .md
文件放置在 sources/_posts
文件夹。
hexo new "hello Hexo" vim sources/_posts/hello-hexo.md
编辑完毕以后, 使用hexo g
将 .md
文件渲染成静态文件,然后启动hexo-server
:
hexo g hexo server
现在便可以打开浏览器访问 http://localhost:4000
来查看我们的博客了!
5. 自动化部署
5-1:服务器上建立git裸库
创建一个裸仓库,裸仓库就是只保存git
信息的Repository
, 首先切换到git
用户确保git
用户拥有仓库所有权
一定要加 --bare
,这样才是一个裸库。
su git cd ~ git init --bare blog.git
5-2. 使用 git-hooks 同步网站根目录
在这里我们使用的是 post-receive
这个钩子,当git有收发的时候就会调用这个钩子。 在 ~/blog.git
裸库的 hooks
文件夹中,
新建post-receive
文件。
vim ~/blog.git/hooks/post-receive #!/bin/sh git --work-tree=/path/to/www --git-dir=~/blog.git checkout -f
保存后,要赋予这个文件可执行权限
chmod +x post-receive
5-3. 配置_config.yml
,完成自动化部署
然后打开 _config.yml
, 找到 deploy
deploy: type: git repo: git@SERVER:/home/git/blog.git //<repository url> branch: master //这里填写分支 [branch] message: 提交的信息 //自定义提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }})
保存后,尝试将我们刚才写的"hello hexo"部署到服务器
hexo clean hexo generate --deploy
访问服务器地址,就可以看到我们写的文章"Hello hexo",以后写文章只需要:
hexo new "Blog article name" ···写文章 hexo clean && hexo generate --deploy
博客就更新咯!~
参考资料:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java Web技术架构方案概述
大型网站系统架构的演进都是随着业务增长不断演进,所有的出发点都是为了满足业务需求。最初访问量下,功能简单时,单体软件可以解决所有问题;后来访问量逐渐增大,功能愈加丰富,此时单体软件的架构逐渐成为开发和运维的瓶颈。所以微服务拆分,集群化部署,消息中间件,内存数据库,数据库中间件等解决方案逐渐走进视野。 下图为简略版的Web系统架构,本文围绕此图展开,简要介绍其中涉及组件的功能和应用场景。 回到最初,Web项目的源头几乎全来源于用户的请求(此处忽略运维相关的定时监控等任务),当海量的请求并发量超过Tomcat服务器的峰值时,Tomcat的集群化应运而生,与之同时反向代理组件Ngnix走进视野。Ngnix本身作为入口,其稳定性是关键因素,所以利用keepalived实现高可用是正常思维。 综上,可以看到集群化的目的在于解决单服务能力不足的问题,高可用的机器备份方案是为了实现系统的稳定运行。但是,在集群化时又引入了负载均衡,高可用时怎样实现异常故障自动切换等技术问题,这里均不深入讨论,仅引入一个概念基础。另,每一种组件有很多相关的产品,这里仅针对图中列出的组件进行介绍。 拆分后的微服务部署在不...
- 下一篇
去大厂面试被问:如果是MySQL引起的CPU消耗过大,你会如何优化
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 目录 谁在消耗cpu? 祸首是谁? 用户 IO等待 产生影响 如何减少CPU消耗? 减少等待 减少计算 升级cpu 谁在消耗cpu? 用户+系统+IO等待+软硬中断+空闲 祸首是谁? 用户 用户空间CPU消耗,各种逻辑运算 正在进行大量tps 函数/排序/类型转化/逻辑IO访问… 用户空间消耗大量cpu,产生的系统调用是什么?那些函数使用了cpu周期? IO等待 等待IO请求的完成 此时CPU实际上空闲 如vmstat中的wa 很高。但IO等待增加,wa也不一定会上升(请求I/O后等待响应,但进程从核上移开了) 产生影响 用户和IO等待消耗了大部分cpu 吞吐量下降(tps) 查询响应时间增加 慢查询数增加 对mysql的并发陡增,也会产生上诉影响 如何减少CPU消耗? 减少等待 减少IO量 SQL/index,使用合适的索引减少扫描的行数(需平衡索引的正收益和维护开销,空间换时间) 提升IO处理能力 加cache/加磁盘/SSD 减...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker安装Oracle12C,快速搭建Oracle学习环境