小编Tel*_*ler的帖子

如何使用Azure WordPress实例通过Traffic Manager和CDN进行地理负载平衡

问题: 我在Azure上使用MySQL数据库的ClearDB安装了可扩展的WordPress实例(不是VM,而是Microsoft Azure的预配置WordPress Web应用程序实例)。我已经测试了Azure BLOB存储WordPress插件,它可以显示安装Azure存储的CDN中的数据。

我希望能够扩展我的WordPress实例以满足不同区域位置的需求。当前,我们的设置(不在Azure中,但使用4个由Ultima托管在不同地理数据中心中的VM)具有一个登台服务器(在美国)和3个在欧盟,非盟和美国的区域服务器。随着不同地区需求的增加(超过3个是可以的,如果我们可以深入到特定国家,那就太好了),我希望我的WordPress网站实例在该地区加速发展,并指导用户向最近的服务器发出请求他们的区域。

  • 如何使用流量管理器来定义区域,并告诉自服务器实例启动该区域中的另一个实例节点(而非VM)?

  • 如何确保该区域中的节点使用
    最接近该区域的ClearDB 副本(我不希望所有Web前端
    访问美国区域中单个位置的数据库)

  • 如何使用流量管理器确保从CDN(Azure存储)中提取的数据是从最接近
    请求区域的节点中提取的)?

  • 如何设置登台服务器并发布到公共节点,
    然后按区域特定位置扩大需求?

如果您阅读了我们目前如何进行全局WordPress故障转移设置,那么我的问题会更有意义。

当前的配置和背景故事 目前,我在全球的WordPress站点上分别在3个区域中托管的不同Ultima托管VM上进行了设置。

4台服务器

  • 舞台 -本地临时服务器VM接近我们在美国的办公室
  • 欧盟 -Ultima在欧盟地区托管的欧洲服务器。它是登台服务器的Hyper-V实例
  • AU-由Ultima在非盟地区托管的澳大利亚服务器。它是登台服务器的Hyper-V实例
  • 美国 -Ultima在美国地区托管的北美服务器。它是登台服务器的Hyper-V实例

WordPress:所有版本均安装了4.0.1版(不提供多版本)(我已编辑WordPress wp-config.php以根据请求的IP检测所请求的区域服务器(交换机/案例),然后为每个服务器设置配置文件以定义WordPress )。以下:

  • DB_NAME
  • DB_USER
  • DB_PASSWORD
  • DB_HOST
  • WP_HOME
  • WP_SITEURL

示例:对我们的欧盟服务器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', …
Run Code Online (Sandbox Code Playgroud)

mysql wordpress geolocation cleardb azure-traffic-manager

5
推荐指数
0
解决办法
301
查看次数