华为云征文|部署个人博客管理系统 Ghost
- 一、Flexus云服务器X实例介绍
- 1.1 云服务器介绍
- 1.2 应用场景
- 1.3 对比普通ECS
- 二、Flexus云服务器X实例配置
- 2.1 重置密码
- 2.2 服务器连接
- 2.3 安全组配置
- 三、部署 Ghost
- 3.1 Ghost 介绍
- 3.2 Docker 环境搭建
- 3.3 Ghost 部署
- 3.4 Ghost 使用
- 四、总结
一、Flexus云服务器X实例介绍
1.1 云服务器介绍
云服务器的重要意义主要体现在灵活性、弹性和成本效益。它们提供了根据需求即时调整计算资源的能力,节省了长期硬件采购和维护的成本,同时保障业务的稳定运行。通过云服务器,企业可以更高效地部署、扩展和管理应用程序,适应快速变化的市场需求,推动数字化转型,加速业务创新。
华为云下一代云服务器Flexus X实例焕新上线,新产品具备柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景,从而帮您快速上云!
Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。
本次测评使用的规格是:4核12G-100G-3M规格
的Flexus X实例基础模式
1.2 应用场景
Flexus云服务器X实例打造的柔性算力云服务器,可智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负载场景。
电商直播
:基于Flexus X实例搭建电商交易平台,可以从容面对电商市场瞬息万变对的业务压力变化。企业建站
:面向博客、论坛,和企业门户等业务场景,帮助企业传播价值信息,促进信息共享和交流,支撑用户建设多功能的传播和交互平台。个人开发测试
:开发者在开发、测试过程中需要的环境资源,可以选择从云上提供。基于Flexus云服务器X实例搭建开发测试环境,更加便利,成本更优。游戏服务器
:适用于搭建游戏后台服务器,强大算力轻松应对千人同时在线,同时平滑扩容可快速应对服务器玩家数量上涨诉求,超强的网络加速能力提升用户体验。
1.3 对比普通ECS
项目 | Flexus应用服务器L实例 | Flexus云服务器X实例 | ECS |
---|---|---|---|
适用对象 | 适用于业务负载要求相对较低,且期望即开即用、超快部署的中小企业和开发者。 | 适用于中负载业务,且期望资源灵活选配的中小企业和开发者。 | 适用于网站应用、企业电商、图形渲染、数据分析、高性能计算等高负载、全业务应用场景。 |
实例特点 | 内置丰富的解决方案与镜像,零门槛快速搭建业务环境,轻松启动和管理业务 | 灵活自定义规格、性能稳定强劲、按需灵活计费。 | 支持灵活地选择所需的内存、CPU、带宽等配置,帮助您打造可靠、安全、灵活、高效的应用环境。 |
二、Flexus云服务器X实例配置
2.1 重置密码
购买完成后,会短信通过你的云服务器信息,重点是公网IP地址和用户名。首先我们需要打开你的服务器控制台,完成重置密码
勾选自动重启,点击确定即可。
2.2 服务器连接
-
方式一:使用控制台提供的VNC方式登录
-
方式二:使用Putty、Xshell等工具登录Linux弹性云服务器,
a) 下载安装登录工具,例如Putty。
b) 输入弹性公网IP。
c) 输入用户名:root、密码,单击“确定”。 -
方式三:使用Linux/Mac OS系统主机登录Linux弹性云服务器。
a) 执行连接命令。
ssh 弹性公网IP
例如:ssh 123.xxx.xxx.456
b) 输入用户名:root、密码,登录服务器。
我个人习惯使用 MobaXterm
这款软件,添加SSH连接,输出公网IP
、用户名和端口(默认22),连接即可。
2.3 安全组配置
安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供访问策略。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。
系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组。
主要需要填写优先级(默认填1即可)、协议端口信息(一般选择你项目需要暴露的端口即可),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。
如果还不清楚可以参考文档:安全组配置示例
三、部署 Ghost
3.1 Ghost 介绍
Ghost 是一款功能强大的应用,可供专业出版商创建、分享内容并发展业务。它配备了现代工具,可用于创建网站、发布内容、发送简报以及向会员提供付费订阅。
-
简单的网站设计:用户可以完全控制网站和品牌的设计,轻松启动自定义网站,并根据品牌和风格调整设计设置。Ghost 提供大量自定义主题,用户可以选择使用,或者从头开始构建自己的设计。
-
高级创作者工具:Ghost 的编辑器专为专业人士设计,用户可以通过它在网络和电子邮件中发布内容。编辑器界面简洁,默认采用高级工作流程,支持富媒体和动态卡片,扩展了讲故事的可能性。
-
内置新闻通讯:Ghost 提供电子邮件简报功能,使出版商可以通过邮件将最新的帖子推送给受众,并根据用户偏好发送不同的简报。
-
会员与订阅:Ghost 简化了建立会员资格和订阅服务的过程,允许用户免费注册或购买付费订阅,支持每月和每年的高级套餐选择。
-
数据分析和管理:用户可以查看会员信息、注册及付费情况,以及了解哪些内容最受欢迎,通过详细的参与度分析优化内容策略。
Ghost 的设计很简约,相比较于臃肿不堪的 WordPress,功能和交互层面作出改进,采用实时架构 , 大大提高访问体验。非常简洁,Zip 安装包只有 1.7M, 部署完成之后在 30M 之内,运行效率比 WordPress 高上一个数量级。专注于博客内容本身,而不需要用户去关心博客平台的种种问题。采用了 Markdown 编辑器 , 有着非常棒的写字体验。目前不支持官方的中文语言适配,可能有点不习惯功能界面,但是记录博客文章不影响体验。
- 官网:https://ghost.org/
- Github:https://github.com/tryghost/ghost
3.2 Docker 环境搭建
本次服务器环境是ubuntu系统镜像,需要自己安装docker环境
服务器类别 | 系统镜像 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
Flexus云服务器X实例 | Ubuntu | 192.168.0.168 | 27.2.0 | Ubuntu 22.04.4 LTS |
使用apt-get
命令安装docker及其配置
# 安装必要工具包
$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common# 添加Docker GPG秘钥
$ sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -# 配置仓库源
$ sudo add-apt-repository \"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) \stable" # 更新apt包索引
$ sudo apt-get update# 安装docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io# 添加docker镜像源
$ sudo vim /etc/docker/daemon.json{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://ccr.ccs.tencentyun.com/","https://docker.m.daocloud.io/","https://dockerproxy.com",]
}
# 重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
测试docker
安装是否成功
root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```
检查docker
服务状态
root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h ago
TriggeredBy: * docker.socketDocs: https://docs.docker.comMain PID: 24912 (dockerd)Tasks: 13Memory: 24.7MCPU: 3.778sCGroup: /system.slice/docker.service`-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
检查docker compose
版本
root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2
3.3 Ghost 部署
- 下载镜像
从 docker hub 拉取 Ghost 镜像,地址:https://hub.docker.com/_/ghost/
root@flexusx-c6b3:~# docker pull ghost:5-alpine
Pulling ghost (ghost:5-alpine)...
5-alpine: Pulling from library/ghost
46b060cc2620: Pull complete
18bfd1a7f5d0: Pull complete
48f16a148263: Pull complete
5c30aa900b09: Pull complete
c383aac6316f: Pull complete
a148ddbaf69a: Pull complete
22052d953230: Pull complete
e10dfa524d67: Pull complete
76c3f3524e5f: Pull complete
4f4fb700ef54: Pull complete
1e7a84be4a03: Pull complete
Digest: sha256:57867f74dff5919f3d1d41c83b4f1d34663cea981260176ed57bb6e1e0252569
Status: Downloaded newer image for ghost:5-alpine
- 配置安全组
在Flexus云服务器X实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听2368端口,所以添加安全组为TCP:2368
协议端口。
- 启动服务
使用docker-compose
方式启动,先创建文件docker-compose.yml
version: '3.1'services:ghost:image: ghost:5-alpinerestart: alwaysports:- 2368:2368environment:# see https://ghost.org/docs/config/#configuration-optionsdatabase__client: mysqldatabase__connection__host: dbdatabase__connection__user: rootdatabase__connection__password: exampledatabase__connection__database: ghost# this url value is just an example, and is likely wrong for your environment!url: http://localhost:2368# contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)#NODE_ENV: developmentvolumes:- ghost:/var/lib/ghost/contentdb:image: mysql:8.0restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: examplevolumes:- db:/var/lib/mysqlvolumes:ghost:db:
- volumes:映射容器内部文件路径到本地
- ports:配置访问端口
如果将上述代码片段保存在名为 docker-compose.yml 的文件中,则只需从同一文件夹中运行 docker compose up -d
即可自动拉取 ghost 映像,并创建并启动一个容器。 up
表示启动服务,-d
表示在后台执行。docker-compose down
命令用于停止和清理由 docker-compose up
启动的服务。
root@flexusx-c6b3:~/ghost# docker-compose up -d
Creating network "ghost_default" with the default driver
Creating ghost_ghost_1 ... done
Creating ghost_db_1 ... done
- 检查容器状态
检查 ghost 容器状态,确保容器正常启动
root@flexusx-c6b3:~/ghost# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
02a8a500ee6c ghost:5-alpine "docker-entrypoint.s…" 11 hours ago Up 11 hours 0.0.0.0:2368->2368/tcp, :::2368->2368/tcp ghost_ghost_1
58fcd00aa3a3 mysql:8.0 "docker-entrypoint.s…" 11 hours ago Up 11 hours 3306/tcp, 33060/tcp ghost_db_1
- 访问地址
内网:http://localhost:2368/ghost
外网:http://公网IP:2368/ghost
- 访问结果
若出现此页面,则部署 ghost server 成功。
3.4 Ghost 使用
创建管理员账户:输出网站标题、管理员名字、邮件地址和密码(第一个注册的用户即为管理员),完成注册进入主界面
按照引导页指示,下一步可以自定义网站主题,可以对主题色、Logo、网站名称和字体等参数调整,修改完成后右上角View site
可以直接预览,使用的网址是:http://localhost:2368/
右下角还有个Change Theme
,可以查看更多主题选择,总有一款适合你
接下来进入文章编辑模块,可以添加封面图、文章标题和文章内容,右侧栏展开可以进行发布设置
文章内容支持markdown
格式编辑,支持多种富文本:图片、视频、音频、网页等
随便写点,内容发布第一篇博客文章
编辑完成后点击发布,先预览完成后再确定发布
成员管理页面,可以先测试添加自己作为成员
完成引导任务的最后一步,分享网站
回到首页面板,会有数据分析图标,可以一目了然展示成员增减、发布文章等信息
左侧菜单栏包含主要功能点:数据面板、预览网站、探索优秀的Ghost站点、编辑帖子、帖子草稿、计划发布、已发布、页面管理、标签管理、成员管理等
设置功能中含有丰富的配置
还可以编辑个人的信息,如头像、坐标、个人网站、座右铭等信息,在这里还可以修改密码
Ghost 作为个人博客管理系统的个人使用就是上面的这些了,更多的功能和配置就需要自行探索了。
四、总结
Flexus云服务器X实例是面向博客、论坛,和企业门户等业务场景,帮助企业传播价值信息,促进信息共享和交流,支撑用户建设多功能的传播和交互平台。而且Flexus云服务器X实例使用门槛较低,如果您是正在了解云计算服务的入门用户,或是需要在服务器中部署简单应用的个人开发者、中小企业,比如部署一些轻量级的有趣的项目,那么推荐您选择Flexus云服务器X实例
。
此次使用的Flexus X实例配置还是很高的4核12G-100G-3M规格
的基础模式
,部署的 Ghost 使用体验很完美,几乎没有任何卡顿和延迟,加载进度超快,使用free -h
查看内存占用情况也很低。Flexus X实例的弹性和可靠性可以根据需求随时扩展资源,确保博客的顺畅运行,为使用者提供无忧的博客创作和分享体验。