“HyperDB”插件用于 WordPress 中的数据库冗余和负载平衡
我叫伊藤,是一名基础设施工程师。
使用 AWS 等云服务,现在可以轻松复制服务器并通过负载均衡器提供对站点的冗余和负载均衡访问。
在此状态下,Web 服务器是冗余且负载均衡的,但数据库不是冗余且负载均衡的。
如果对数据库的访问量很大,
Web服务器上的负载还好,但有可能DB服务器端的处理会被堵塞,导致站点无法显示。
这是一个很长的介绍,但 WordPress 是在所谓的 LAMP 环境中运行的内容。
这意味着使用了数据库,因此即使网络服务器变得冗余,如果数据库堵塞......
503服务暂时不可用
我收到一个我不想看到的错误。 。
在这种情况下,让 DB 变得冗余吧! !
所以,我想介绍一下 HyperDB
就 AWS 而言,RDS 冗余很容易实现。
您所需要做的就是创建主 RDS 的“只读副本”。
因此,我将省略解释。
安装超级数据库
安装HyperDB插件有点复杂。
这是因为虽然可以从Wordpress管理屏幕安装,但
实际设置需要直接写入php文件。
安装完成后,您将在Wordpress的wp-content/plugins/hyperdb中找到以下文件。
“db-config.php”
,则需要提前输入设置并上传到目标目录
首先,在wp-config.php中写入以下内容。 “数据库配置文件是db-config.php。”
# vim /pass/to/docroot/wp-config.php Define('DB_CONFIG_FILE', ABSPATH . 'db-config.php');
让我们继续进行设置。
超级数据库配置
为已安装的 db-config.php 配置以下设置。
首先,配置主服务器。 (第 217 行左右,在 v1.1 中得到确认)
# vim /pass/to/docroot/db-config.php $wpdb->add_database(array( 'host' => '输入 RDS(主服务器)端点', 'user' => DB_USER, 'password' => DB_PASSWORD, '名称' => DB_NAME, '写入' => 1, '读取' => 2, ));
对于主机,输入 RDS 端点,但如果您使用默认 3306 以外的端口,则
必须输入 <端点>:<端口号>,后跟冒号和端口号。
关键是写和读。
- write:优先写入DB
- read:优先读入DB
如果设置为“0”,则不会执行写入和读取。
在上述情况下,主服务器的写入优先级较高,读取优先级较低。
接下来是从服务器设置。
请将其添加到前面提到的主服务器设置下方。
# vim /pass/to/docroot/db-config.php $wpdb->add_database(array( 'host' => '输入 RDS(从服务器)端点', 'user' => DB_USER, 'password' => DB_PASSWORD, '名称' => DB_NAME, '写入' => 0, '读取' => 1, ));
写入和读取在这里也有效。
- write: 0=不写入该服务器
- 读:1 = 读具有高优先级,写为 0 所以只读
通过此设置,仅在从服务器上执行读取。
同样,如果注册了多个从服务器,则只会在从服务器上进行读取。
现在,对数据库的读取(即正常访问)在从属服务器上进行负载平衡。
在 WordPress 中,写入数据库的唯一操作是从管理屏幕完成的操作,例如更改设置和添加文章。
这不是问题,因为主服务器的写入优先级设置得很高。
因此,Wordpress DB 现在是冗余且负载平衡的!
现在,即使突然访问,您也可以感到安全!这是正确的。
HyperDB — WordPress 插件