使用HAProxy和GlusterFS扩展WordPress

时间:2020-01-09 10:43:32  来源:igfitidea点击:

本教程将向我们展示如何在GlusterFS中设置复制的文件系统,以存储WordPress站点并在多个服务器之间共享它们。为了平均平衡所有WordPress服务器上的负载,将部署HAProxy。

GlusterFS不需要自己的服务器。我们可以将其安装在需要彼此共享信息的多台服务器上,从而消除了单点故障。

如上所述,我们将配置一个复制文件系统来托管我们的WordPress网站。使用复制,写入磁盘的所有更改几乎都会立即复制到我们的其他服务器。只要网络足够快(至少1 GB),我们就不太可能注意到复制的延迟。

基础配置

主机名操作系统角色
lb1Ubuntu 16.04HAProxy负载平衡器
wordpress1Ubuntu 16.04WordPress主机,GlusterFS节点
wordpress2Ubuntu 16.04WordPress主机,GlusterFS节点
wordpress3Ubuntu 16.04WordPress主机,GlusterFS节点

部署HAProxy

HAProxy是一个闪电般的负载均衡器。部署和配置也很容易。

  • SSH进入HAProxy服务器。

  • 安装HAProxy

  • 在文本编辑器(例如VIM)中打开HAProxy配置文件。

  • 配置HAProxy以平衡到我们三台WordPress服务器的流量。

  • 保存更改并退出文本编辑器。

安装和配置GlusterFS

为了与所有WordPress服务器共享WordPress安装,我们需要安装GlusterFS。我们将需要在每台服务器上执行以下任务。

安装GlusterFS

  • 安装GlusterFS。
sudo apt install glusterfs-server
  • 创建一个目录来存储GlusterFS程序块。
sudo mkdir -p /srv/data/wordpress

添加GlusterFS对等方并创建复制的模块

现在,所有WordPress服务器上都安装了GlusterFS,我们需要使它们彼此对等。

  • 登录到WordPress服务器之一。

  • 与其他两个WordPress服务器对等。

gluster peer probe wordpress2 wordpress3
  • 验证对等状态。
sudo gluster peer status
  • 使用所有三个WordPress服务器作为对等方,创建一个名为wordpress-vol的GlusterFS卷。
sudo gluster volume create wordpress-vol replica 3 transport tcp wordpress1:/srv/data/wordpress wordpress2:/srv/data/wordpress wordpress3:/srv/data/wordpress

如果GlusterFS卷与Linux根分区在同一磁盘卷上创建,则需要在命令末尾添加" force"。最佳做法是将GlusterFS卷放在单独的磁盘上,但是在某些场景中,我们可能无法这样做。

sudo gluster volume create wordpress-vol replica 3 transport tcp wordpress1:/srv/data/wordpress wordpress2:/srv/data/wordpress wordpress3:/srv/data/wordpress force
  • 启动wordpress-vol音量。
gluster volume start wordpress-vol
  • 验证卷设置。
sudo gluster volume info
  • 仅允许WordPress服务器挂载GlusterFS卷。
sudo gluster volume set wpsite1vol auth.allow wordpress1,wordpress2,wordpress3

挂载复制的砖

以下任务将需要在所有WordPress服务器上完成。因为GlusterFS是使用已配置的存储模块在每个本地安装的,所以我们可以从每个服务器本地安装模块。这样做的好处是,如果其他任何WordPress服务器都脱机,则其余服务器仍将有权访问其所有内容。

Apache的默认Web根目录是/ var / www / html。我们将挂载GlusterFS复制卷作为该目录。

  • 将fstab打开到文本编辑器中。
sudo vi /etc/fstab
  • 将以下行添加到每台服务器上的fstab中,以使安装持续进行。这意味着它将在每次引导后自动安装。切记在其余服务器上将wordpress1更改为wordpress2或者wordpress3.
wordpress1:/wordpress-vol /var/www/html glusterfs defaults,_netdev,log-level=WARNING,log-file=/var/log/gluster.log 0 0
  • 保存更改并退出文本编辑器。

  • 挂载新的GlusterFS卷。

mount -a

部署WordPress

我们的WordPress服务器都将由Apache2提供支持。我们需要安装PHP和所有必需的依赖模块才能在Apache2和MySQL上运行WordPress网站。

安装Apache和PHP

  • 安装Apache2.
sudo apt install apache2
  • 安装PHP和PHP MySQL模块。
sudo apt install php php-mysql
  • 为Apache2安装PHP模块
sudo apt install apache2-mod-php7.0
  • 重新启动Apache2以加载新的PHP模块。
sudo systemctl restart apache2

安装WordPress

  • 下载最新版本的WordPress。
wget http://wordpress.org/latest.tar.gz
  • 将tar文件的内容提取到我们的GlusterFS卷中,该卷是我们站点的Web根目录(在Apache中配置)。
tar xvf latest.tar.gz -C /var/www/html --strip-components=1