使用HAProxy和GlusterFS扩展WordPress
本教程将向我们展示如何在GlusterFS中设置复制的文件系统,以存储WordPress站点并在多个服务器之间共享它们。为了平均平衡所有WordPress服务器上的负载,将部署HAProxy。
GlusterFS不需要自己的服务器。我们可以将其安装在需要彼此共享信息的多台服务器上,从而消除了单点故障。
如上所述,我们将配置一个复制文件系统来托管我们的WordPress网站。使用复制,写入磁盘的所有更改几乎都会立即复制到我们的其他服务器。只要网络足够快(至少1 GB),我们就不太可能注意到复制的延迟。
基础配置
主机名 | 操作系统 | 角色 |
---|---|---|
lb1 | Ubuntu 16.04 | HAProxy负载平衡器 |
wordpress1 | Ubuntu 16.04 | WordPress主机,GlusterFS节点 |
wordpress2 | Ubuntu 16.04 | WordPress主机,GlusterFS节点 |
wordpress3 | Ubuntu 16.04 | WordPress主机,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