Hexo(+Next)+Gitee+ECS环境部署

一、背景

在这宽广而深邃的互联网世界,伴随着闲暇的时光,我选择在此留下自己的足迹。过去的岁月里,我曾在不同的领域、不同的岗位上,沉浸在工作的热忱中,积累了丰富的经验和深入的理解。然而,这些经历,如同散落的珍珠,缺少一根线串联,没有一个地方去记录,去回顾,去思考。

我寻找的,不仅仅是一个可以记录我专业技术成长的地方,也是一个可以留存我生活观察、思考的地方。我希望,通过这样一个个人博客,我可以编织一张汇集过去、展望未来的网络,一个能够让我自由挥洒思考,分享经验,回顾过往,展望未来的地方。

这个博客,将会成为我人生经历的容器,收纳我每一次的尝试,每一次的失败,每一次的成功,每一次的思考。它将会是我历程的见证者,是我经验的积累者,是我思想的磨石。同时,我也希望它能够成为我与世界沟通的桥梁,我可以在这里与大家分享我在生活中的所见所闻,职业道路上的心得体会。

同时,这个博客也是我的随笔的家园。在这里,我可以随心所欲地记录生活中的点滴,职业道路上的感悟。无论是一个关于新技术的思考,一个关于行业趋势的预测,还是一篇关于生活琐事的随笔,都可以在这里找到他们的归宿。我希望,每当我在键盘上敲出一段文字,都能够如同留声机一样,把我的声音,我的心声,留在这个世界上。

这就是我的个人博客,一个记录过去,展望未来,分享生活,留声思考的地方。我希望,无论是我,还是你,都能在这里找到属于自己的一片天空。

二、Hexo简介

Hexo是一个快速、简单且强大的博客搭建框架,它采用Node.js进行编写,使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可通过静态网页的形式生成整个网站。Hexo以其极致的性能、丰富的主题以及插件生态体系,在开发者社区中享有极高的声誉。

1、功能特性:

  1. 高效快速:Hexo采用了高效的文件处理机制和渲染机制,使得生成大量博客文章变得快速而轻松。
  2. Markdown支持:Hexo支持Markdown语法,让写作变得更为简单。它也支持其他的渲染引擎,比如AsciiDoc, Textile等。
  3. 一键部署:Hexo支持一键部署到Github、Heroku或其他平台,让博客上线变得更为便捷。
  4. 插件丰富:Hexo有着丰富的插件,可以用来扩展你的博客功能,比如RSS、搜索、评论等。
  5. 主题多样:Hexo拥有活跃的社区,你可以在其中选择你喜欢的主题,或者自己定制主题。

2、Hexo的优势:

  1. 简单易用:Hexo的安装和使用都非常简单,即使是没有太多技术背景的用户,也可以快速上手。
  2. 高效稳定:Hexo的性能高效,能够在短时间内生成大量页面,且生成的静态页面稳定可靠,不容易出现故障。
  3. 社区活跃:Hexo的社区非常活跃,你可以在社区中找到大量的教程、主题和插件,或者寻求帮助。
  4. 可定制性高:Hexo的可定制性非常高,你可以定制出符合自己品味的博客,无论在视觉效果还是功能上。

总的来说,Hexo以其快速、简单、强大的特性,成为了个人博客搭建的优秀选择。无论你是技术专家,还是初学者,都可以在Hexo的世界中找到属于自己的一片天地。

三、整体架构

部署架构

1、整体架构描述

在个人终端上,准备个人博客的编辑环境:

  • 安装Node开发环境,为安装Hexo博客提供基础环境;

  • 基于Node开发环境,安装Hexo博客框架,我们在这里开始个人博客的编辑与制作;

  • 安装Git客户端工具,我们会将个人的博客使用Git客户端更新至Git仓库中,备用;

准备Git仓库

  • 这里的Git仓库可以根据个人情况来区别准备,可以基于公网环境使用Gitee、Github等;也可以基于非公网准备Gitlab仓库,这里我使用的是Gitee(主要原因是稳定、免费、在国内环境下访问速度很快)

准备免费图床

  • 这里我经过对比,选择了聚合图床,因人而异。未来文章中的配图,也是一笔不小的开销,本来也可以选择GitHub,但是国内访问较困难,所以选择了聚合图床

准备ECS服务

  • 这里根据个人情况区别准备,我搭建部署该博客是为了分享工作中的日常经验,所以我基于公网环境选择了阿里云服务器(主要我的域名都在阿里云上,为了减少麻烦,就不折腾了);

  • 由于Hexo不需要数据库环境的支持,只需要能解析Html脚本的Web环境就可以了,所以,这里我准备Nginx服务环境来帮我解析Html脚本的Web页面;

  • 如果个人懂一些Docker知识,也可以准备Docker环境来部署Nginx服务,省心、干净、高效

准备域名

  • 为了让大家能够高效、快捷的知道你、记住你,这里还需要准备一个域名,具体域名因人而异、因能力而异;

  • 为域名备案,个人免费备案,周期大概20天左右,请提前准备,因为未备案或备案中的域名都无法正常使用;

准备Https协议所需的签名证书

  • 我只对比了阿里和腾讯的免费证书,阿里免费证书3个月有效期,之后才能续签至12个月;而腾讯免费证书提供12个月的有效期;为了减少麻烦,我选择了腾讯的免费签名证书

上述都准备齐全之后,我们可以进行之后的部署工作了。

四、整体环境部署

(一)、基于ECS服务器,部署所需环境

1、购买ECS服务器

这里我选择了阿里云服务器,理由上面也说了,我的域名都是在阿里云买的,为了减少不必要的麻烦(包括DNS解析、域名迁移等),我选择了基础款,有优惠活动,每年99元,据说京东云服务器最便宜,大家可以去试试,在这里我就不过多阐述了。

我的配置是:

CPU:2核

内存:2Gb

存储:40Gb

带宽:3Mbps

系统:Linux(CentOS 7.6)

2、部署Docker环境

如果你的ECS服务器已经带了Docker环境,这步可以跳过

  • 使用yum命令安装yum_utils等依赖包

    1
    yum install -y yum-utils device-mapper-persistent-data lvm2
  • 安装Docker

    1
    yum install docker -y
  • 启动Docker服务、并将Docker服务添加至开机自启动

    1
    2
    systemctl start docker
    systemctl enable docker
  • 此时Docker环境基本安装完成,由于docker仓库在国外服务器上,我们在国内访问时速度不容乐观,都会选择配置加速器或更改镜像仓库地址。这里,我们选择配置阿里云的加速器

  • 首先进入aliyun.com首页,在上面的搜索栏中输入“容器镜像服务”,等待展示内容更新,如下图

  • 下展示页中选择“容器镜像服务”,如下图

  • 然后选择“管理控制台”,如下图

  • 然后选择“镜像加速器”,如下图

  • 根据下图提示,进行环境配置

  • 配置镜像加速器的文件在/etc/docker目录下,文件名为daemon.json,如果没有此文件,可以在该目录下创建此文件,并配置如下内容

    1
    2
    3
    {
    "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
    }

    其中“xxxxxx”内容,根据自己的字符去改写。

  • 上述操作做好后,执行如下命令,重新启动docker服务

    1
    2
    sudo systemctl daemon-reload
    sudo systemctl restart docker
  • 至此,Docker环境部署完成。

3、基于Docker环境部署Nginx服务

  • 首先获取Ningx镜像,使用如下命令将获取最新版nginx镜像

    1
    docker pull nginx

    等待命令执行结束,并使用如下命令,查看已下载好的nginx镜像

    1
    docker images

    Ningx镜像

  • 接下来我们需要将nginx镜像内的default.conf文件映射出来,因为之后的证书等都需要修改该配置文件。我们这里尽量不要去使用从网络上找到的那些default.conf文件内容,或多或少都会与当前的nginx版本不太兼容,最稳妥的方式就是我们启动刚下载的最新版本的nginx镜像,找到其中的default.conf配置文件,并复制出来备用。

  • 启动Nginx镜像

    1
    docker run  --restart=always --privileged=true  -itd --name nginx -p 80:80 -p 443:443  -v /home/hexo:/usr/share/nginx/html  nginx

    这里需要注意,使用-v命令映射的存储卷的权限需要修改一下,不然无法正常访问前端页面,使用如下命令

    1
    chmod 755 /home/hexo

    使用如下命令查看容器是否启动成功

    1
    docker ps -a

    Nginx容器状态

    记住ContainerID,我们需要使用如下命令进入到正在启动的容器内部

    1
    docker exec -it 998ed356912a /bin/bash

    查找default.conf文件所在位置,发现该文件在/etc/nginx/conf.d目录下,使用如下命令将容器内的配置文件复制出来,复制的具体路径随意,但需要提前有该目录。

    1
    docker cp 998ed356912a:/etc/nginx/conf.d/default.conf /home/nginx/conf.d/

    接下来,我们需要将刚才的容器删除掉,使用如下命令

    1
    2
    docker stop 998ed356912a
    docker rm 998ed356912a

    再次启动新的容器,使用如下命令

    1
    docker run -itd --restart=always --privileged=true --name nginx_hexo -p 80:80 -p 443:443 -v /home/nginx/conf.d:/etc/nginx/conf.d -v /home/nginx/certs:/etc/nginx/certs -v /home/hexo:/usr/share/nginx/html nginx:latest

    具体参数不做解决,自行脑补即可。目前来说,我们已经成功的映射了default.conf文件,证书存放的目录(/home/nginx/certs),页面存放的目录(/home/hexo)

    至此,我们已经可以通过80端口访问前端页面了,我们可以在/home/hexo目录下,创建一个index.html文件,并通过网络环境访问,这里需要提醒一下,当访问不成功可能是防火墙端口没有打开导致的,由于我使用的是阿里云,可以通过云服务器ECS下的网络与安全中的安全组配置相关访问规则,如下图

    阿里云配置访问规则

4、配置SSL证书

阿里云提供的免费证书期限为3个月,腾讯云提供的免费证书为1年,所以我选择使用腾讯云的免费证书来供阿里云ECS服务器使用。

  • 基于腾讯云(https://console.cloud.tencent.com/) 找到SSL证书管理页面,并进入该页面

    腾讯云SSL证书管理

  • 在“我的证书”功能下,使用“申请免费证书”功能

    腾讯云申请免费证书

  • 对应配置出填写相关内容信息,这里需要值得注意的就是你必须有一个域名,且该域名已经备案成功,当然,也可以是未备案或备案中的域名,这样就算你的SSL证书成功签发,由于域名未完成最终备案,将导致无法正常通过https协议请求该域名。

    填写申请免费证书资料信息

  • 下载证书

    我的证书页面

    下载证书

  • 这里还需要注意,由于免费证书是腾讯云提供的,而我的服务器是阿里云的,所以在阿里云对应的域名上增加解析配置,具体如何配置不做详细讲解,每个证书的key和value都不同,免费证书成功申请后会有相应的提示,我在这里仅展示一下。

    新增SSL证书域名解析

  • 上下载好的证书上传至云服务器对应的目录中,我这里使用的是(/home/nginx/certs)目录,修改nginx的default.conf配置文件。

    配置Nginx证书信息

  • 至此,证书配置成功,可以尝试访问

    HTTPS协议访问

(二)、基于本地Hexo环境部署及使用

1、Hexo的基础环境部署,即Node环境部署

未完待续,且听下回

Java随笔

暂时没想好谢谢什么,日后补充吧。

人生路远,江湖再见!

此去人生路远,我们江湖再见!

  朝阳在天边升起,星辰在夜空中闪烁,而我们,彷佛在无尽的流年里,被定格在每一个微妙的瞬间。人生,像一出绚丽的戏剧,或欢笑,或泪流,我们都是那最真实的演员。我们微笑着阅读过去,痛苦着思索现在,却在向未来投出希望的种子。此刻,你我在江湖的十字路口向彼此道别,却同时开启了各自人生的新篇章。“此去人生路远,我们江湖再见!”

  人生的道路,如同蜿蜒深邃的江湖,每个人都是一叶扁舟,有时,我们会在平静的湖面上畅游,享受生活的宁静;有时,我们会迎着巨浪向前,品尝人生的酸甜苦辣。每个转角,都有可能会遇到新的风景,每个路口,都可能会分别到老朋友,遇见新朋友。生活的河流终将汇入广阔的海洋,而我们,只能在江湖中向前,寻找属于自己的彼岸。

  此去人生路远,带着我们身上的风尘,胸中的梦想,向前追寻。人生的路,有时像泥泞的小径,让我们疲惫不堪;有时又像宽阔的大道,让我们飞驰而过。无论道路如何,我们都必须继续前行,因为那就是我们的人生,那就是我们的江湖。我们不能让自己被困在原地,我们要打破笼牢,展翅翱翔。我们要在江湖里寻找善良,坚守正义,信守诺言,我们要在人生的路上,坚定步伐,坚守方向,坚持不懈。

  我们江湖再见,这不是终点,而是新的开始。再见,不是告别,而是期待再次相遇的希望。江湖虽大,但心有灵犀,我们的心将永远相连。虽然此刻,你我各奔东西,但我们的心却永远在一起,共享人生的酸甜苦辣。再见,不代表终止,只是暂时的别离,我们将在人生的道路上,期待那一天的重逢。

  此去人生路远,我们江湖再见。让我们带着希望和梦想,踏上人生的新征程。让我们在人生的大舞台上,扮演好自己的角色,用心去感受每一次的快乐和痛苦。因为那些经历,都将成为我们人生的宝贵财富。让我们在人生的江湖里,勇往直前,无畏无惧,用生命去创造属于自己的辉煌。

北极光

0%