问题: 我在Azure上使用ClearDB为MySQL数据库设置了一个可扩展的WordPress实例(不是VM,但是Microsoft Azure的预配置WordPress Web应用程序实例)。我测试了Azure BLOB存储WordPress插件,它可以显示我的Azure存储设置的CDN中的数据。
我希望能够让我的WordPress实例扩展以满足不同地区的需求。目前,我们的设置(不在Azure中,但使用Ultima在不同地理数据中心托管的4个VM)具有登台服务器(在美国)和欧盟,澳大利亚和美国的3个区域服务器。随着不同地区的需求增加(超过3个是好的,如果我们可以到达特定的国家,那么好)我希望我的WordPress网站的一个实例在该地区启动,并指示用户向最近的服务器发出请求他们的地区。
如何使用流量管理器定义区域并告知以后 服务器实例在该区域中启动另一个实例节点(而不是VM)?
如何确保该区域中的节点使用
的副本
最接近该地区的ClearDB(我不想要所有的网络前端
访问美国地区单个位置的数据库)
如何使用流量管理器确保从中获取数据 CDN(Azure存储)从最靠近该区域的节点拉出 请求)?
如何设置登台服务器并发布到公共节点 然后在区域特定地点扩大需求?
如果您阅读我们目前的全球WordPress故障转移设置,我的问题会更有意义。
当前配置&背景故事 目前,我在全球范围内对位于3个地区位置的不同Ultima托管虚拟机进行了全球WordPress设置,如下所示。
4台服务器
WordPress:版本4.0.1安装在所有版本上(NOT MULTISITE) 我已经编辑了WordPress wp-config.php ,以根据请求的IP检测请求的区域服务器(交换机/案例),然后为每个服务器设置配置文件以定义以下内容:
示例:对我们的EU服务器IE eu.contoso.com的请求将在匹配的CASE语句中包含这些值
switch ($ip) {
case (strstr ($ip, '255.255.255.255') == true): // EU server request, set to port 3306
$port = '3306';
break;
}
$host = $ip . ':' . $port;
SWITCH ($hostname) {
case 'eu.contoso.com': //This is the EU server
define('DB_NAME', 'main_wp_website');
/** MySQL database username */
define('DB_USER', 'main_website_user');
/** MySQL database password */
define('DB_PASSWORD', 'main_website_password');
/** MySQL hostname */
define('DB_HOST', $host);
define('WP_HOME', 'http://eu.contoso.net');
define('WP_SITEURL', 'http://eu.contoso.net');
break;
}
原因:这允许用户从不同的请求点进入WordPress站点并正确设置对该区域的DB的数据库访问权限,并使用特定于区域的根域重写URL。所有案例的所有配置文件都存在于每个服务器的wp-config.php文件中,因此它们在服务器之间是相同的。
MySQL:主服务器/从服务器复制中的MySQL服务器设置版本6(在每台服务器上的my.ini中)从登台到全局区域服务器
文件存储:这是网站目录,WordPress内容目录(插件,主题,上传等)
我们正在使用名为Syncovery的产品来监控这些文件夹和 检测更改并自动将文件通过FTP同步到另一个 服务器类似的文件夹
当Syncovery采用时,我们使用BeyondCompare进行手动同步 检测更改的时间太长
流量路由:我们使用名为EdgeDirector的DNS服务,该服务从请求IP中检测区域,并将请求用户路由到距离其区域最近的服务器。
我想要预防 目前我们与文件同步问题(数据库复制很好,没有问题)。我们的同步程序必须不断扫描和同步数十万个文件,当检测到文件更改时,将设置扫描(这需要时间),然后检测到检测到的文件差异(这也需要时间,具体取决于文件大小) )。如果在扫描关闭后,另一个文件或文件夹发生更改,我们必须等待第一个扫描/文件副本完成。这导致将已发布内容从我们的登台服务器推送到公共集群时出现长时间延迟。
我也不想要维护4个不同的实例/服务器。我最多想要一个暂存实例和一个公共实例,我们根据区域特定位置的需求发布并扩展/缩小。
根据我上面描述的需求,是否有更简单的方法可以在不同地区制作可扩展的WordPress网站?我是azure的新手,我发现旧的方法是在新的云环境中不一定是最好的。
我很清楚如何让Azure上的WordPress站点运行,并且已经有一个使用ClearDB和Azure BLOB存储的工作实例。我真的只想知道如何在区域范围内扩展它,就像我们当前的设置或通过确保他们始终访问最近的服务器来满足区域不同区域用户的需求的新方法,并在需要时自动配置和扩展就产生了。