利用阿里云搭建WordPress网站 – 数据库缓存和管理

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: WordPress是一种非常流行的博客网站平台,也可以当作一个内容管理系统(CMS)来使用, 是世界上使用最广泛的博客系统之一。WordPress有非常多优秀的插件,使得这个开源产品变得非常容易扩展,满足不同的需求。

WordPress是一种非常流行的博客网站平台,也可以当作一个内容管理系统(CMS)来使用, 是世界上使用最广泛的博客系统之一。WordPress有非常多优秀的插件,使得这个开源产品变得非常容易扩展,满足不同的需求。
我准备利用一个系列的文章,来展示如果利用阿里云的各种产品(弹性计算,数据库,安全等等),搭建一个完整的WordPress网站。内容包括:

四、数据库缓存和管理

当网站业务量逐渐增加,数据库往往是整个系统中第一个遇到性能瓶颈的组件。这个时候需要通过对数据库进行优化和管理,来提高数据库的吞吐能力。
针对网站类应用,读多写少是常态,因此针对性地进行数据库读写分离往往是一个好办法。阿里云RDS数据提供的读写分离功能可以对外提供一个单一的数据库读写入口,对系统的侵入性很小,是个非常理想的解决方案。除此之外,业界最常用的方法应该是在整个架构中增加内存数据库来进行数据缓存,一般来说会选用Redis数据库来进行实施。由此,系统的数据部分变得越来越复杂,因此还需要利用DMS这种管理工具来进行方便的运维。
这个部分的架构图如下,基于上一个版本增加了:

  • MySQL数据库读写分离:存放用户向WordPress上传的附件
  • CDN:通过CDN边缘节点的缓存机制加速附件静态文件的读取
    1

用DMS管理后台数据

阿里云的DMS数据管理产品(https://www.aliyun.com/product/dms)在官网上的口号是“比phpMyAdmin更强大,比Navicat更易用”,还是挺霸气的。其主要作用当然是聚合所有数据库的管理(无论在不在阿里云上),方便DBA对库表进行各种操作和维护。此外比较讨喜的功能是利用DSQL(通过Dlink)进行跨库查询,在微服务架构应用中进行数据验证的时候常常会用到。这里简单演示一下免费版本的基本功能,专业版和企业版需要额外购买,同时也去除掉一些限制并提供一些额外功能,详见:https://help.aliyun.com/document_detail/48109.html

最简单登陆DMS的方法是在RDS上面点击“登陆数据库”,输入用户名和密码即可。为了演示方便,我就直接用了之前设置的高权限账号root。
2

在界面的昨天可以看到数据库选择和数据表列表,通过这里我们可以发现WordPress的数据结构还是很简单的,基本上可以通过表名猜测到该表的用途,比如“wp_posts”自然就是存储帖子啦。注意“wp_”这个前缀是可以定制的哦,如果不知道怎么做的同学注意回看这个系列的第一篇。
试着写个SELECT语句看看里面的内容,很容易可以找到WordPress在安装时默认po的第一篇hello world的帖子。

3
4

回到页面上修改内容一下,保存,然后再回到DMS重跑一次SQL,可以看到新的内容已经写入了数据表中。

5
6

MySQL读写分离

MySQL读写分离这个功能,如果是自建数据库的话,需要利用Mycat做主从同步,做心跳检测,还得自己运维,还是比较麻烦的。阿里云MySQL直接提供这个功能还是很贴心,在数据库实例的“数据库代理”标签就可以打开了。首先选择添加只读实例,稍等一会儿,一个新的只读实例就创建好了。创建只读实例时会从备实例复制数据,数据与主实例一致,主实例的数据更新也会在主实例完成操作后立即自动同步到所有只读实例,完美。
7
8
9

在实例列表中会发现增加了一个打着“R”标的数据库实例。只读实例数量有限制,<64GB的主实例最多挂5个,≥64GB的主实例最多挂10个,一般中小网站挂3个就差不多了。
10

只读实例有自己的内网地址,可以用程序控制什么时候使用主实例,什么时候使用只读实例。当然大多数情况下,让MySQL自己决定就好了。我们回到主实例中,设置读写分离,将所有的读权重都给只读实例好了。这样就可以得到主实例的读写分离地址啦。

11
12

获得读写分离地址后,我们需要回到WordPress的配置文件wp-content/wp-config.php中,将之前填写的主库内网地址替换成刚刚获得的读写分析地址,并重启。
13

完成后在网页上浏览一下,从后端只读实例的监控可以看到IOPS和连接数等数据的变化,可以确定读写分离已经起作用了。
14

MySQL读写分离

Redis数据库(https://www.aliyun.com/product/kvstore)作为一种最常用的缓存数据库,几乎在各行各业的应用中都可以看到。为了将Redis利用起来,系统程序需要有一定的改造,WordPress则是通过插件来支持。一般来说还需要做高可用,以避免Redis失效而造成的雪崩效应,拖垮整个系统。因此大多数情况下都应该选择集群版多节点,以确保缓存的高可用。实际购买的时候注意VPC并设置密码。
15

和MySQL一样,使用之前要开白名单。这种安全机制在阿里云数据库基本是标配,配置方法也基本一样,把ECS服务器加进去就可以了。
16
17
18
19

白名单配置完成后,记录下内网地址,后面会用到。
20

然后在WordPress中安装插件Redis Object Cache。安装后打开配置项,可以发现这个插件需要修改配置才可以使用。但是这个插件的配置居然不是可视化的,还需要从后台修改配置文件,差评。
21
22

插件的配置信息是放在配置文件wp-content/wp-config.php中的。需要增加/修改以下代码(其中WP_REDIS_PASSWORD需要设置成创建Redis实例时设置的密码):

/** setup for Redis Object Cache **/
define('WP_REDIS_CLIENT', 'pecl');
define('WP_REDIS_SCHEME', 'tcp');
define('WP_REDIS_HOST', 'Redis实例的内网地址');
define('WP_REDIS_DATABASE', '0');
define('WP_REDIS_PASSWORD', '创建Redis实例时候设置的密码');
define('WP_CACHE_KEY_SALT', 'wp_');
define('WP_REDIS_MAXTTL', '86400');

23

配置完成后,再回到页面上的插件配置项上看一下Redis的配置,如果正确无误的话,选择“Enable Object Cache”,在状态栏应该显示“Connected”就表示配置完成了。
24
25

试着使用一下WordPress,然后我们利用DMS数据管理再看看Redis的效果。同样也是在Redis实例页面上方选择“登陆数据库”,然后应该可以看到许多Key-Value对和CPU、内存、命中率等指标,这就表示Redis已经开始为网站提供缓存服务啦。
26
27

相关文章
|
2天前
|
关系型数据库 Serverless PHP
一元建站-基于函数计算 + wordpress 构建 serverless 网站
一元建站-基于函数计算 + wordpress 构建 serverless 网站
|
4天前
|
弹性计算 数据可视化 安全
高效部署企业门户网站【阿里云云效平台详细指南】
使用阿里云云效部署企业网站涉及备案域名、ECS、VPC、云效代码仓库和流水线。一键部署通过ROS快速配置,手动部署则需详细配置流水线,包括代码源、构建、部署到ECS。整个流程约10分钟,但需注意网络问题可能导致的异常。一键部署适合快速启动,手动部署适合定制化。文档详细,但可增加常见问题解答和自动化脚本支持。
118 2
高效部署企业门户网站【阿里云云效平台详细指南】
|
14天前
|
域名解析 弹性计算 运维
基于云效流水线高效构建企业门户网站体验评测
阿里云云效流水线作为一款企业级持续集成和持续交付工具,在助力高效构建企业门户网站方面表现出色。
37721 8
基于云效流水线高效构建企业门户网站体验评测
|
15天前
|
弹性计算 运维 持续交付
构建与部署企业门户网站:阿里云云效解决方案评测
在数字化时代,企业门户网站作为企业形象的线上窗口,其建设和运维效率直接影响着企业的在线品牌形象与用户体验。阿里云提供的“构建企业门户网站”解决方案,借助云效平台实现从代码到云端的无缝部署,为开发者和企业带来了前所未有的便捷性与效率。
350 5
构建与部署企业门户网站:阿里云云效解决方案评测
|
4天前
|
弹性计算 Java Linux
部署单点WordPress网站
在特定场景下编写模板的流程比较固定,本篇文章以《部署单点 WordPress 博客平台》为例,讲述如何完成一个部署成功率高、适配场景广的模板。大多数在 ECS 上部署应用的模板都可以参考此教程来编写。
|
15天前
|
关系型数据库 MySQL PHP
蓝易云 - WordPress建站可以用阿里云服务器吗?
具体的操作步骤包括购买和设置阿里云服务器,安装LAMP或LNMP环境,创建MySQL数据库,最后下载和安装WordPress。
24 2
|
16天前
|
弹性计算 安全 持续交付
深度评测:阿里云“高效构建企业门户网站”解决方案
阿里云的“高效构建企业门户网站”解决方案在操作便捷性、系统稳定性、扩展性以及成本控制等方面都表现出色,为企业用户提供了一站式的网站建设和托管服务。
53 3
|
25天前
|
弹性计算 安全 网络安全
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(3)
**《从基础到应用云上安全航行指南》——阿里云专家教你如何安全访问和管理ECS资源(3)** 在阿里云的广阔云海中,ECS(弹性计算服务)资源如同航行的船只,承载着我们的业务与数据。如何确保这些
|
4天前
|
弹性计算 自然语言处理 负载均衡
部署高可用WordPress网站
高可用服务是另外一个高频使用的场景,编写模板的流程和《部署单点WordPress网站》一样,但涉及的资源更多一些。本文以《部署高可用WordPress网站》为例,介绍高可用部署类的模板如何编写。
|
1月前
|
弹性计算 Kubernetes 监控
【阿里云弹性计算】阿里云 ECS 与 Kubernetes 集成:轻松管理容器化应用
【5月更文挑战第28天】阿里云ECS与Kubernetes集成,打造强大容器管理平台,简化应用部署,实现弹性扩展和高效资源管理。通过Kubernetes声明式配置在ECS上快速部署,适用于微服务和大规模Web应用。结合监控服务确保安全与性能,未来将深化集成,满足更多业务需求,引领容器化应用管理新趋势。
209 2