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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 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

相关文章
|
6天前
|
安全 JavaScript Java
汉服|高校汉服租赁网站|基于Springboot的高校汉服租赁网站设计与实现(源码+数据库+文档)
汉服|高校汉服租赁网站|基于Springboot的高校汉服租赁网站设计与实现(源码+数据库+文档)
18 0
|
1天前
|
弹性计算 运维 监控
【阿里云弹性计算】云上自动化运维实践:基于阿里云ECS的自动化部署与管理
【5月更文挑战第27天】阿里云ECS自动化运维实践:借助ECS API和SDK实现自动化部署,通过Python示例展示实例创建。利用Ansible、Docker等工具进行配置管理和容器化,结合CloudMonitor和Auto Scaling实现监控告警及资源动态调整,提升运维效率和系统稳定性。
11 0
|
1天前
|
域名解析 搜索推荐 网络安全
如何使用Cloudways搭建WordPress网站
得益于开源的CMS建站系统的兴起,如今搭建网站已经变得非常简单,即使是不懂编程的人也能轻松搭建自己的网站。本文将以最受欢迎的WordPress开源建站系统为例,向大家介绍如何使用CloudWays搭建WordPress网站。首先你需要注册域名(推荐NameSilo)和购买主机服务器(推荐Cloudways),然后注册Cloudways账号,接下来是创建Cloudways主机并安装WordPress、设置域名解析、域名绑定、安装SSL证书。完成这些操作后你就可以访问WordPress后台了,接着就是安装WordPress主题和WordPress插件
13 0
如何使用Cloudways搭建WordPress网站
|
3天前
|
敏捷开发 Kubernetes Cloud Native
【阿里云云原生专栏】跨云部署与管理:阿里云云原生技术的多云策略
【5月更文挑战第25天】阿里云云原生技术提供多云策略,助力企业高效跨云部署与管理。通过容器化(如Kubernetes)、服务网格等,实现应用一致性与可移植性;统一资源管理,简化跨云操作。挑战包括数据同步、网络问题和平台差异,但阿里云的解决方案为企业在多云环境中实现资源优化、业务敏捷和系统可靠性提供了强有力支持。随着云计算发展,阿里云将持续演进其多云策略,为企业数字化转型提供保障。
14 1
|
5天前
|
监控 Cloud Native 安全
【阿里云云原生专栏】云原生下的API管理:阿里云API Gateway的应用场景与优势
【5月更文挑战第23天】阿里云API Gateway是高性能的API托管服务,适用于微服务API聚合、安全管理及流量控制。它提供统一入口、多种认证方式和流量控制策略,确保服务稳定性。具备高度可扩展性、丰富插件生态和简化API生命周期管理等特点。通过简单步骤,如创建API、配置后端服务、设置认证和发布,即可快速上手。作为云原生时代的API管理解决方案,阿里云API Gateway助力企业高效、安全地管理API,推动业务创新和数字化转型。
12 1
|
6天前
|
JavaScript Java 关系型数据库
志愿者招募|基于SSM+vue的志愿者招募网站系统的设计与实现(源码+数据库+文档)
志愿者招募|基于SSM+vue的志愿者招募网站系统的设计与实现(源码+数据库+文档)
37 16
|
6天前
|
JavaScript 小程序 Java
戒烟网站|基于SSM+vue的戒烟网站系统的设计与实现(源码+数据库+文档)
戒烟网站|基于SSM+vue的戒烟网站系统的设计与实现(源码+数据库+文档)
16 0
戒烟网站|基于SSM+vue的戒烟网站系统的设计与实现(源码+数据库+文档)
|
6天前
|
JavaScript Java 关系型数据库
电影网站|基于SSM+vue的电影网站系统(源码+数据库+文档)
电影网站|基于SSM+vue的电影网站系统(源码+数据库+文档)
23 0
|
6天前
|
JavaScript Java 关系型数据库
音乐网站|基于SprinBoot+vue的音乐网站(源码+数据库+文档)
音乐网站|基于SprinBoot+vue的音乐网站(源码+数据库+文档)
13 0
|
6天前
|
小程序 JavaScript Java
阅读小程序|基于微信阅读网站小程序的系统设计与实现(源码+数据库+文档)
阅读小程序|基于微信阅读网站小程序的系统设计与实现(源码+数据库+文档)
14 0