部署个人博客管理系统 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 云服务器 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.456b)输入用户名: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 环境

使用 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 -vDocker version 27.2.0, build 3ab4256```

检查 docker 服务状态

root@flexusx-c6b3:~# systemctl status docker* docker.service - Docker Application Container Engine     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)     Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h agoTriggeredBy: * docker.socket       Docs: https://docs.docker.com   Main PID: 24912 (dockerd)      Tasks: 13     Memory: 24.7M        CPU: 3.778s     CGroup: /system.slice/docker.service             `-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

检查 docker compose 版本

root@flexusx-c6b3:~# docker compose versionDocker Compose version v2.29.2

3.3 Ghost 部署

• 下载镜像

从 docker hub 拉取 Ghost 镜像,地址:https://hub.docker.com/_/ghost/

root@flexusx-c6b3:~# docker pull ghost:5-alpinePulling ghost (ghost:5-alpine)...5-alpine: Pulling from library/ghost46b060cc2620: Pull complete18bfd1a7f5d0: Pull complete48f16a148263: Pull complete5c30aa900b09: Pull completec383aac6316f: Pull completea148ddbaf69a: Pull complete22052d953230: Pull completee10dfa524d67: Pull complete76c3f3524e5f: Pull complete4f4fb700ef54: Pull complete1e7a84be4a03: Pull completeDigest: sha256:57867f74dff5919f3d1d41c83b4f1d34663cea981260176ed57bb6e1e0252569Status: 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-alpine    restart: always    ports:      - 2368:2368    environment:      # see https://ghost.org/docs/config/#configuration-options      database__client: mysql      database__connection__host: db      database__connection__user: root      database__connection__password: example      database__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: development    volumes:      - ghost:/var/lib/ghost/content  db:    image: mysql:8.0    restart: always    environment:      MYSQL_ROOT_PASSWORD: example    volumes:      - 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 -dCreating network "ghost_default" with the default driverCreating ghost_ghost_1 ... doneCreating ghost_db_1 ... done

• 检查容器状态

检查 ghost 容器状态,确保容器正常启动

root@flexusx-c6b3:~/ghost# docker psCONTAINER ID   IMAGE                                    COMMAND                  CREATED       STATUS                   PORTS                                                 NAMES02a8a500ee6c   ghost:5-alpine                       "docker-entrypoint.s…"   11 hours ago   Up 11 hours   0.0.0.0:2368->2368/tcp, :::2368->2368/tcp   ghost_ghost_158fcd00aa3a3   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 实例的弹性和可靠性可以根据需求随时扩展资源,确保博客的顺畅运行,为使用者提供无忧的博客创作和分享体验。

华为云正在举行 828 B2B 企业节,无疑为寻求性价比的用户提供了一个绝佳的机会。不论是新创企业还是个人开发者,都可以借此良机享受到高性能的计算资源和支持,比如 Flexus X 实例,它不仅能满足高强度的算力需求,还能完美支持自建应用。快来体验华为云带来的无限可能吧!立即体验

 

Apipost 私有化火热进行中

评论