基于OSS搭建云上个人博客

更新时间:

阿里云OSS,可以托管静态网站,在这个实验中,我们将以Hexo静态博客为例,向您演示如何通过Hexo博客框架快速生成静态博客,以及如何使用Hexo插件将生成的静态博客自动部署至阿里云OSS。

场景简介

本实验主要介绍如何在一台配置了Alibaba Cloud Linux 3操作系统的ECS实例(云服务器)和消息队列RocketMQ版实例,实现基础消息收发功能。

背景知识

本场景主要涉及以下云产品和服务:

  • 云服务器ECS

    云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。一台云服务器ECS实例等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的组件。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

  • 对象存储OSS

    阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(129)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。

前提条件

云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。

重要

本实验预计一个小时产生费用0.6元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。

进入实操前,请确保阿里云账号满足以下条件:

  • 已通过实名认证并且账户余额大于100。

  • 云资源产生的费用需您自行承担,云起实验室不会向您征收额外费用。

  • 所有实验操作将保留至您的账号,请谨慎操作。

  • 实操结束后,您可以选择继续付费保留资源,或参考手册自动/手动释放资源。

创建实验资源

  1. 在实验页面,勾我已阅读并同意《阿里云云起实践平台服务协议》我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操

  2. 创建资源需要5分钟左右的时间,请您耐心等待。

  3. 云产品资源列表,您可以查看本场景涉及的云产品资源信息。

    image

安全设置

资源创建完成后,为了保护您阿里云主账号上资源的安全,请您重置云服务器ECS的登录密码和设置安全组端口。

  1. 重置云服务器ECS的登录密码。

    1. 云产品资源列表的ECS云服务器区域,单击管理

      image

    2. 实例详情页签的基本信息区域,单击重置密码

      image

    3. 重置实例密码对话框中,设置新密码确认密码重置密码的方式选择在线重置密码配置SSH密码登录策略选择开启,单击确认修改

      image

      返回如下结果,表示ECS实例root用户的登录密码重置成功。

      image

  2. 设置安全组端口。

    1. 云产品资源列表的安全组区域,单击管理

      image

    2. 访问规则区域的入方向中,添加SSH(22)HTTP(80)4000端口。

      重要

      添加端口时,授权对象建议选择您的本机IP地址

      image

实验环境准备

  1. 安装Git。

    1. 云产品资源列表的ECS云服务器区域,单击远程连接。输入ECS登录的用户名和密码进行登录。

      image

    2. 执行以下命令进行Git的安装。

      yum install git -y
    3. 安装完成后,可以执行下方命令验证Git的版本。

      git --version

      如果 Git 的版本号可以成功展示,说明 Git 已经成功安装。

      image

  2. 安装Node.js。

    1. 在终端中,通过执行下方的命令,安装Node.js。

      yum install nodejs -y
  3. 安装完成后,可以进行nodenpm的版本信息验证。

    说明

    如果两者的版本信息都能成功展示,说明Node.js已经成功安装。

    1. 验证node的版本信息。

      node -v
    2. 验证npm的版本信息。

      npm -v

      image

利用Hexo生成静态博客

Hexo是一个快速、简洁且高效的博客框架。Hexo使用Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

  1. 安装Hexo。

    1. 在终端中,可以通过执行下方的命令,全局安装Hexo客户端。

      npm install -g hexo-cli --registry=https://registry.npmmirror.com
    2. 安装完成后,可以执行下方命令验证Hexo的版本及其依赖信息。

      说明

      如果 Hexo 的版本及其依赖信息可以成功展示,说明hexo已经成功安装。

      hexo -v

      image

  2. 初始化博客项目。

    在终端中执行下方命令,初始化博客项目,同时会安装博客项目所需的依赖包。

    cd ~ && hexo init blog --no-clone

    初始化成功的终端展示如下。

  3. 安装 hexo-deployer-cos 插件。

    在终端中通过以下命令下载安装hexo-deployer-cos插件。

    cd ~/blog && npm install hexo-deployer-ali-oss --save
  4. 自动生成博客的静态文件。

    在终端中执行下方命令,生成静态文件。

    hexo g

    image

本地部署博客

  1. 启动博客。执行以下命令,进入blog项目文件夹,启动博客项目。

    cd ~/blog/ && hexo s

  2. 验证博客是否成功启动。

    1. 云产品资源列表的ECS云服务器区域,复制公网IP

    2. 打开浏览器,输入ECS的公网IP地址加端口号4000,访问网站。

      项目界面的展示效果类似于下图,则证明博客启动成功。

      image

基于阿里云OSS部署静态博客

  1. 创建阿里云AccessKey

    重要

    在本实验完成后,若不再使用,建议参考实验手册步骤及时删除阿里云AccessKey。

    1. 前往AccessKey管理

    2. 不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey

      image

    3. AccessKey页面,单击创建AccessKey

      image

    4. 根据界面提示完成安全验证。

    5. 创建云账号AccessKey对话框,再次阅读创建主账号AccessKey的风险及主账号AccessKey使用限制,如果确定要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey

      image

    6. 创建AccessKey对话框,保存AccessKey IDAccessKey Secret,然后勾选我已保存好AccessKey Secret,最后单击确定

      image

  2. 修改存储桶配置。

    1. 进入OSS控制台

    2. 在对象存储OSS管理控制台左侧导航栏中,单击Bucket列表

      image

    3. Bucket列表页面,单击Bucket名称

      说明

      您可以在云产品资源列表中查看到您的OSSBucket名称。

      image

    4. 进入Bucket权限控制 > 读写权限,将Bucket权限改为公共读写

      image

    5. 进入Bucket授权策略,单击新增授权

      image

    6. 新增授权对话框中,修改如下参数后,单击确定

      • 授权资源:整个Bucket

      • 授权用户:所有账号

      • 授权操作:简单设置 > 读/写

      • 条件:访问方式设置为HTTP

        image

  3. 将静态博客上传至阿里云OSS 中。

    1. 切换至命令行,按Ctrl+C退出博客启动。

    2. 执行如下命令,编辑 _config.yml文件。

      vim _config.yml
    3. shift+G跳转到文件末尾最后一行,按i键进入编辑模式,复制下方代码,自行替换参数值,粘贴并覆盖原 deploy 选项的代码。

      说明

      冒号一定要使用英文冒号,冒号前不能有空格,冒号后必须有一个空格,这是 yml 的固定写法。

      • type:默认ali-oss,无需修改。

      • region:指代地域,例如:华东1(杭州)对应的值即:oss-cn-hangzhou,您可在官方说明文档OSS地域和访问域名中可以查看。

      • accessKeyId、accessKeySecret:上一步创建AccessKey时,自行保存的AccessKey Id、AccessKey Secret。

      • bucket:为创建OSS Bucket时的Buekct名称。

      deploy: 
        type: ali-oss
        region: yourRegion
        accessKeyId: yourSecretId
        accessKeySecret: yourSecretKey
        bucket: yourBucket

      image

    4. 完成编辑后,按esc输入:wq,保存退出。

  4. 执行以下命令重新生成静态文件。

    hexo g -d

    生成结果如下。

    image

创建文章

  1. 创建文章markdown模板。

    1. 执行以下命令进入blog项目目录下,创建新文章。

      cd ~/blog && hexo new first
    2. 示例图如下。

    3. 命令执行完毕后,会在source/_posts中会生成一个markdown文件,本条命令会生成一个“first.md”的文件。

  2. 编写 markdown 文件。

    1. 打开first.md文件,编写生成的文章模板。

      vim source/_posts/first.md
    2. 进入编写界面后,自动生成的markdown文件如图所示。image

    3. 在下方编辑自己想要编辑的内容,支持 markdown 语法,例子如图所示。

      image

    4. esc输入:wq,保存退出。

  3. 启动博客查看文章。

    1. 执行以下命令,进入blog项目文件夹,启动博客项目。

      cd ~/blog/ && hexo s

      image

    2. 切换至浏览器,输入ECS的公网IP地址加端口号4000,访问网站,可以看到博客页面展示了刚刚创建的文章。

      image

  4. 重新生成静态文件并部署至阿里云OSS。

    1. 切换至命令行,按Ctrl+C退出博客启动。

    2. 执行命令,重新生成静态文件并部署至阿里云OSS。

      cd ~/blog && hexo g -d

      执行结果如图所示。

      image

实验验证

验证上传阿里云OSS是否成功。

回到Bucket详情页,单击存储桶左侧列表中的文件列表,如果文件列表中包含静态博客生成的静态文件,则说明静态文件通过插件自动上传至阿里云OSS成功,示例图如下。

清理资源

  • 在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。

    • 删除阿里云AccessKey。

      1. 前往AccessKey管理

      2. 不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey

        image

      3. AccessKey面,找到目标AccessKey,单击右侧操作列下的禁用

        image

      4. 禁用对话框中,单击禁用

      5. AccessKey面,找到目标AccessKey,单击右侧操作列下的删除

        image

      6. 删除对话框中,输入当前AccessKeyID,单击删除

    • 删除相关资源后,单击结束实操。在结束实操对话框中,单击确定

      image

  • 在完成实验后,如果需要继续使用资源,您可跳过释放相关资源的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。

    image