负载均衡是什么?有什么用

负载均衡是什么?有什么用,第1张

负载均衡实际上是一种网络技术,主要是基于现有的网络结构,增加吞吐量加强网络数据处理能力、提高应用系统的灵活和可用性。它可以优化算法,支持轮询均衡(Round Robin)、最少连接数均衡(Least Connection)和Sourse IP 等转发策略,合理分配用户流量。同时后端HTTP、TCP健康检查,一旦发现后端服异常,自动暂停分发。正常后自动启用,保证可用性。当局部节点出现故障,其余节点仍可支持用户访问。消除单点故障,保障网站的可靠性。就是可以提升企业业务系统的响应速度、保证业务系统的安全稳定,提升业务平台的可靠性,提升业务系统的伸缩性。华云的负载均衡技术就做的很好,今年还获得了可信云本地负载均衡认证。

负载均衡利用两种方式实现,其一是利用 Microsoft Windows2000 Advance Server 的集群技术实现的单集群36台服务器的负载均衡;其二是利用先进的Alteon180e 硬件设备实现的硬件负载均衡,提供可靠高效、与平台无关、基于TCP、UDP、IP等多种协议的应用负载均衡。同时,利用 Alteon180e 的技术特性实现基于端口和IP地址的网络流量划分,使有特殊流量需求的用户能够得到充足稳定的网络带宽资源。

避免单链路连接造成的单点故障

高质量专用硬件设备

专业的服务团队

多年的实施经验满足各类客户的需要

降低管理难度

减少投资成本,消除带宽瓶颈

1:找分区或目录同步软件,某台服务器改动了自动把修改应用到别的服务器,比如红旗的HA。

2:换种建服务器的思路,后台用一台独立的服务器做数据库和文件服务器,用来存放数据库和上传的文件,另外的做负载均衡运行服务器,把不需要变动的网页程序放上面。

你可以试试在一台服务器做WEB和数据库,另外一台做WEB,两个WEB都连接那一个数据库,这样两个WEB内容就是同步的了,然后两台WEB间做负载,下边是我COPY的

网络负载均衡可以让客户端用一个逻辑Internet名称和虚拟IP地址(又称群集IP地址)访问群集,同时保留每台计算机各自的名称。下面,我们将在两台安装Windows Server 2003的普通计算机上,介绍网络负载均衡的实现及应用。

这两台计算机中,一台计算机名称为A,IP地址为19216807;另一台名为B,IP地址为19216808。规划网络负载均衡专用虚拟IP地址为19216809。当正式应用时,客户机只需要使用IP地址19216809来访问服务器,网络服务均衡会根据每台服务器的负载情况自动选择19216807或者19216808对外提供服务。具体实现过程如下:

在实现网络负载均衡的每一台计算机上,只能安装TCP/IP协议,不要安装任何其他的协议(如IPX协议或者NetBEUI协议),这可以从“网络连接属性”中查看。

第一步,分别以管理员身份登录A机和B机,打开两台机的“本地连接”属性界面,勾选“此连接使用下列项目”中的“负载均衡”项并进入“属性”对话框,将IP地址都设为19216809(即负载均衡专用IP),将子网掩码设置为2552552550;

第二步,分别进入A机和B机的“Internet协议(TCP/IP)”属性设置界面,点击“高级”按钮后,在弹出的“高级TCP/IP设置”界面中添加IP地址19216809和子网掩码设置为2552552550。

第三步,退出两台计算机的“本地连接属性”窗口,耐心等一会儿让系统完成设置。

以后,如果这两台服务器不能满足需求,可以按以上步骤添加第三台、第四台计算机到网络负载均衡系统中以满足要求。

用IIS服务验证网络负载均衡

网络负载均衡配置好后,为了实现某项具体的服务,需要在网络负载均衡的计算机上安装相应的服务。例如,为了实现IIS网站的负载均衡,需要在相应的网络负载均衡服务器上安装IIS服务。为了让每个用户在通过网络负载均衡访问到不同的计算机时,能够访问到一致的数据,需要在网络负载均衡的每台计算机上保持数据的一致性。举例来说,实现了两个节点的IIS的网络负载均衡,为了保证两个网站内容的一致性,除了这两个IIS服务器的配置相同外,相应的网站数据必须一致。

为了检验网络负载均衡,我们可以通过IIS来进行验证,其他的一些应用如终端服务、Windows Media服务与IIS的应用与之相类似。在其他计算机上的IE浏览器中键入19216809,根据网络的负载,网络负载均衡会自动转发到A机或B 机。为了验证效果,你可以在浏览的时候,拔掉第一台计算机的网线或拔掉第二台机器的网线,将会发现浏览到的将是不同内容。当然,我们在测试的时候,为了验证网络负载均衡的效果,把两个网站设置成不一致的内容,而在正式应用的时候,网络负载均衡群集的每个节点计算机的内容将是一致的,这样不管使用哪一个节点响应,都能保证访问的内容是一致的。

冗余是针对于服务器之间的备份的,他高于服务器负载均衡。负载是指你正在运行的所有提供同一应用的服务器之间的负载,根据负载的算法,会均衡你这些提供相同应用的服务器性能以及运行。而冗余起到的作用是在你主备服务器的主机宕机之后,立刻启动备机防止应用不能访问,提供24小时不间断服务。负载是在一个服务器组中做均衡,提高服务器组的总体运行安全度。这点负载与冗余有很大的相似处。

  负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。

  软件负载

  基于特定服务器软件的负载均衡

  ---- 这种技术是利用网络协议的重定向功能来实现负载均衡的,例如在Http协议中支持定位指令,接收到这个指令的浏览器将自动重定向到该指令指明的另一个URL上。由于和执行服务请求相比,发送定位指令对Web服务器的负载要小得多,因此可以根据这个功能来设计一种负载均衡的服务器。一旦Web服务器认为自己的负载较大,它就不再直接发送回浏览器请求的网页,而是送回一个定位指令,让浏览器去服务器集群中的其他服务器上获得所需要的网页。在这种方式下,服务器本身必须支持这种功能,然而具体实现起来却有很多困难,例如一台服务器如何能保证它重定向过的服务器是比较空闲的,并且不会再次发送定位指令?定位指令和浏览器都没有这方面的支持能力,这样很容易在浏览器上形成一种死循环。因此这种方式实际应用当中并不多见,使用这种方式实现的服务器集群软件也较少。

  DNS负载

  基于DNS的负载均衡

  ---- DNS负载均衡技术是最早的负载均衡解决方案,它是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

  ---- 这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP应用;但是,其缺点也非常明显,首先这种方案不是真正意义上的负载均衡,DNS服务器将Http请求平均地分配到后台的Web服务器上,而不考虑每个Web服务器当前的负载情况;如果后台的Web服务器的配置和处理能力不同,最慢的Web服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS请求分配到这台故障服务器上,导致不能响应客户端。最后一点是致命的,有可能造成相当一部分客户不能享受Web服务,并且由于DNS缓存的原因,所造成的后果要持续相当长一段时间(一般DNS的刷新周期约为24小时)。所以在国外最新的建设中心Web站点方案中,已经很少采用这种方案了。

  交换负载

  基于四层交换技术的负载均衡

  ---- 这种技术是在第四层交换机上设置Web服务的虚拟IP地址,这个虚拟IP地址是DNS服务器中解析到的Web服务器的IP地址,对客户端是可见的。当客户访问此Web应用时,客户端的Http请求会先被第四层交换机接收到,它将基于第四层交换技术实时检测后台Web服务器的负载,根据设定的算法进行快速交换。常见的算法有轮询、加权、最少连接、随机和响应时间等。

  七层负载

  基于七层交换技术的负载均衡

  ---- 基于第七层交换的负载均衡技术主要用于实现Web应用的负载平衡和服务质量保证。它与第四层交换机比较起来有许多优势:第七层交换机不仅能检查TCP/IP数据包的TCP和UDP端口号,从而转发给后台的某台服务器来处理,而且能从会话层以上来分析Http请求的URL,根据URL的不同将不同的Http请求交给不同的服务器来处理(可以具体到某一类文件,直至某一个文件),甚至同一个URL请求可以让多个服务器来响应以分担负载(当客户访问某一个URL,发起Http请求时,它实际上要与服务器建立多个会话连接,得到多个对象,例如txt/gif/jpg文档,当这些对象都下载到本地后,才组成一个完整的页面)。

  ---- 以上几种负载均衡技术主要应用于一个站点内的服务器群,但是由于一个站点接入Internet的带宽是有限的,因此可以把负载均衡技术开始应用于不同的网络站点之间,这就是站点镜像技术,站点镜像技术实际上利用了DNS负载均衡技术。

在本教程中,我们将教你如何使用HAProxy为你的WordPress服务器搭建第四层负载均衡--特别是web应用层。负载均衡web服务器要在设置中增加冗余,这会在碰到服务器失败、网络问题时增加服务的可靠性;同时将负载分摊在多个服务器上可以提交读操作的性能。我们假设你所配置中包括一个WordPress应用服务器去连接一台单独的MySQL数据库服务器(假设你已经知道如何架设)。

如果你只是运行了一个单独的web服务器应用程序,那么第四层负载均衡就比较适用。如果你的环境更复杂(例如你想通过一个单一的入口在不同的服务器上运行WordPress和一个静态web服务器),那么就可能就需要关注应用层(第七层)负载均衡。

本文是以WordPress为例子,但是它的一般概念可以用于负载平衡,无状态的web应用。

预备知识

在继续本教程之前,你需要首先要完成架设一个拥有单独数据库服务器的WordPress站点的教程(或者使用类似的步骤):如何使用MYSQL建立一个远程数据库来优化站点性能。

当你跟着教程在单独Web应用和数据库服务器下搭建完WordPress后,你应该有两个VPS。因为我们要处理几个VPS,为了参考,我们就成这两个VPS为:

wordpress-1:你的WrodPress web应用服务器

mysql-1:你的Mysql服务器

现在你的环境的抽象视角看起来像下图这个样子:

除了你当前的环境外,我们在本教程中还需要有两个额外的VPS。我们称他们为:

wordpress-2:第二个WordPress web应用服务器

haproxy-www:HAProxy服务器,做负载均衡用

如果你对负载均衡的基本概念或者数据还不熟悉,比如四层负载均衡或者后端或者ACL,这里有篇文章解释这些基本概念:HAProxy及负载均衡概念介绍(译注:大家可百度查找)。

我们的目标

最终,我们想拥有以下一个环境:

也就是说,你的用户将通过HAProxy服务器到达WordPress站点,其中HAProxy服务器会议轮循的方式将用户请求负载均衡至WrodPress应用服务器。你的两个WordPress应用服务器(或者更过,如果你愿意)将都会请求MYSQL数据库。

当前环境快照

可选:在继续本教程之前,你可能想为你当前环境创建快照。本教程中快照有两个目的:

如果发生错误可以回滚到可工作环境

对原始服务器做一次性复制,而不需要再次安装和配置PHP以及Nginx

注意:为环境创建快照需要短暂的关闭VPS

为wordpress-1和mysql-1两个VPS做一个快照。

现在有了快照以后,我们就可以准备好继续搭建环境中其他部分了。

创建第二台web应用服务器

现在我们需要创建第二个VPS来分担原始应用服务器的负载。有两种选择:

从之前的快照wordpress-1中创建一个新的VPS

从头开始重新创建一个VPS并且设置该VPS和wordpress-1有相同的软件和配置

不论那种方法,如果网络可用,一定要确保勾选个人网络。个人网络是本教程中所有VPS都需要的。

如果没有个人网络选项,用你的VPS的公开IP来替代内网IP。需要注意的是,当使用公网IP在应用服务器和数据库服务器之间传输敏感数据比如非加密的数据库密码,并不是一个很好的选择,因为这些信息需要在互联网上传输。

方式一:使用快照创建新的VPS

创建一个新的VPS,叫做wordpress-2,使用你为wordpress-1做的快照来做。

如果你选择的这种方式,可以跳过“方式二”直接去看“同步web应用文件”小节。

方式二:从头创建一个新的VPS

这种方式和“方式一”可二选一。

如果你想从头设置wordpress-2服务器,而不是使用wordpress-1的快照,那么你要确保安装的软件相同。如果你忘了如何安装和设置原始wordpress服务器,可以参考预备知识章节中如何设置web服务器小节。

快速参考,这里是一个相关软件和配置文件的列表,需要你来安装或复制:

软件方面:

Mysql客户端

Nginx

PHP

安装完这些软件后,在你的wordpress-2服务器上运行一下命令:

sudo apt-get update

sudo apt-get install mysql-client

sudo apt-get install nginx php5-fpm php5-mysql

原始应用服务器上需要创建或编辑的配置文件:

/etc/php5/fpm/phpini

/etc/php5/fpm/poold/wwwconf

/etc/nginx/sites-available/examplecom

/etc/nginx/sites-enabled/examplecom

当你修改完配置文件后,不要忘了冲洗PHP和Nginx,可以使用一下命令:

sudo service php5-fpm restart

sudo service nginx restart

在新服务器的安装和配置完成以后,我们需要同步wordpress应用文件。

同步Web应用文件

在应用程序可以进行负载均衡之前,我们需要确保新应用服务器的应用程序文件和原始wordpress服务器的文件是同步的。这些文件的位置也就是你安装wordpress的位置,以及其他的一些文件。除了wordpress运行所需要的配置文件之外,上传的文件和通过wordpress接口安装的插件的安装文件和这些插件上传的文件都需要去同步。在预备知识文章中,我们将wordpress安装在/var/www/examplecom路径下--我们将

在所有的例子中都会使用这个路径,但是你需要将这个路径替换为你wordpress的实际安装路径。

有很多方法在服务器之间同步文件--NFS或者glusterFS都是不错的选择。我们将使用glusterFS来满足我们所有的同步需求,因为它允许每个应用服务器来存储应用程序文件的副本,同时也会保持文件系统的一致性。下图是我们共享存储方案的概念图:

如果你对本小节中使用的glusterFS完全不熟悉,请参考这个GlusterFS教程(https://wwwdigitaloceancom/community/tutorials/how-to-create-a-redundant-storage-pool-using-glusterfs-on-ubuntu-servers),这是本小节的基础。

注意:下面的内容将经常在wordpress-1和wordpress-2服务器之间跳转,请确保在正确服务器上运行响应命令,否则你将遇到麻烦。

编辑hosts文件

如果你有一个内部DNS,而且这个DNS记录了你VPS的内部IP地址,那么你可以跳过这一步直接配置并执行glusterFS相关命令。

否则,需要在wordpress-1和wordpress-2上编辑/etc/hosts文件:

sudo vi /etc/hosts

增加以下两行,将红色字替换为你应用服务器的各自ip:

wordpress_1_private_IP wordpress-1

wordpress_2_private_IP wordpress-2

保存并退出。

安装GlusterFS并配置一个冗余盘

在wordpress-1和wordpress-2上使用apt-get命令安装glusterFS服务端软件:

sudo apt-get install glusterfs-server

在wordpress-1上,运行以下命令来和wordpress-2保持对等:

sudo gluster peer probe wordpress-2

在wordpress-2上,运行以下命令来和wordpress-1保持对等:

sudo gluster peer probe wordpress-1

在wordpress-1和wordpress-2上,创建路径用来存储glusterFS所管理的文件,运行:

sudo mkdir /gluster-storage

在wordpress-1上,创建glusterFS副本,我们称作volume1,glusterFS 会将它存放在/gluster-storage中的数据保存在你所有的应用服务器上,运行:

sudo gluster volume create volume1 replica 2 transport tcp wordpress-1:/gluster-storage wordpress-2:/gluster-storage force

预期输出以下结果:

volume create: volume1: success: please start the volume to access data

再次在wordpress-1上,运行一下命令来启动刚刚创建的glusterFS卷,在volume1上运行:

sudo gluster volume start volume1

预期输出以下结果:

volume start: volume1: success

在wordpress-1上,如果你想查看刚创建和启动的glusterFS卷的信息,运行:

sudo gluster volume info

你需要明白的是目前有两个glusterFS“同盟”,每个对应一个wordpress服务器。

现在我们已经运行了一个glusterFS盘,为了能够使用它来同步文件,我们需要将该盘挂载。

挂载共享存储

首先挂载wordpress-1上的文件系统。

在wordpress-1上,修改fstab文件来使共享文件系统可以随机启动:

sudo vi /etc/fstab

添加以下行到fstab来将/storage-pool目录作为挂载点:

wordpress-1:/volume1/storage-pool glusterfs defaults,_netdev 0 0

保存并退出。

在wordpress-1上,现在将glusterFS盘挂载至/storage_pool文件系统:

sudo mkdir /storage-pool

sudo mount /storage-pool

在wordpress-1上挂载共享盘/storage-pool后,你可以运行df -h命令来列出当前已挂载的文件。接下来,我们将使用类似的流程来挂载wordpress-2上的共享文件系统。

在wordpress-2上,编辑fstab来使共享系统随机启动:

sudo vi /etc/fstab

添加以下行到fstab来将/storage-pool目录作为挂载点:

wordpress-2:/volume1 /storage-pool glusterfs defaults,_netdev 0 0

在wordpress-2上,现在将glusterFS盘挂载至/storage_pool文件系统:

sudo mkdir /storage-pool

sudo mount /storage-pool

现在,所有在/storage-pool文件系统中创建、修改或删除的文件都会在两个wordpress服务器之间同步,即使当其中一个服务器暂时故障时也会同步。

将wordpress文件移至共享存储

下一步是将wordpress-1的wordpress文件移动到共享存储中。请将红色字体替换为你自己的值。/var/www/examplecom表示wordpress文件的位置(nginx也会在这里查找文件),examplecom本身只是根目录。

在wordpress-1上,运行以下命令来移动wordpress文件至共享文件系统/storage-pool:

sudo mv /var/www/examplecom /storage-pool/

sudo chown www-data:www-data /storage-pool/examplecom

接下来,你可能想创建一个符号链接来指向wordpress在共享文件中位置:

sudo ln -s /storage-pool/examplecom /var/www/examplecom

目前wordpress文件放在共享文件系统/storage-pool中,这些文件接受Nginx访问他们的原始路径/var/www/examplecom。

将新的应用服务器指向共享存储区

下一步是我们在新web应用程序服务器上创建一个符号链接指向WordPress文件共享文件系统。

如果你选择使用快照创建wordpress-2,在wordpress-2上运行以下命令:

sudo rm /var/www/examplecom

sudo ln -s /storage-pool/examplecom /var/www/examplecom

如果你从头创建wordpress-2服务器,在wordpress-2上运行以下命令:

sudo mkdir -p /var/www

sudo ln -s /storage-pool/examplecom /var/www/examplecom

这就是wordpress应用的文件同步。接下来是使新服务器wordpress-2连接数据库。

创建一个新的数据库用户

由于Mysql使用用户名和源主机来区别用户,我们需要创建一个新的wordpress用户来连接新的服务器wordpress-2。

在数据库服务器(mysql-1)上连接至MYSQL控制台:

mysql -u root -p

在一下mysql语句中,将红色字体替换为你真实环境的参数:

wordpress用户:Mysql中wordpress用户。确保和已经存在的用户名保持一致。

wordpress2private_IP:wordpress-2服务器的内部ip。

密码:wordpress用户的Mysql数据库密码。去报和已经存在的用户名密码保持一致。

在wordpress-2上mysql控制台中运行以下命令:

CREATE USER 'wordpressuser'@'wordpress_2_private_IP' IDENTIFIED BY 'password';

GRANT SELECT,DELETE,INSERT,UPDATE ONwordpress TO 'wordpressuser'@'wordpress_2_private_IP';

FLUSH PRIVILEGES;

现在第二台服务器wordpress-2就可以登录mysql服务器mysql-1了。

还没负载均衡

注意,有两个应用服务器在运行但是他们并没有被负载均衡,因为每个服务器必须通过他们的外网IP来访问。而我们希望能够通过相同的URL访问该应用程序,如http://examplecom/,以及在两台服务器之间做流量分配。

安装HAProxy

在内网中创建一个新的VPS,在本教程中,我们叫做haproxy-www。

在haproxy-www服务器上使用apt-get命令来安装HAProxy:

sudo apt-get update

sudo apt-get install haproxy

我们需要使用HAProxy初始化脚本来启动和停止HAProxy:

sudo vi /etc/default/haproxy

将ENABLED值改为1来开启初始化脚本:

ENABLED=1

保存并退出。

现在HAProxy可以在服务器上被启动和停止。当然,你现在可以使用命令来控制HAProxy了。让我们来检查下它是否运行:

/etc/initd$ sudo service haproxy status

输出结果:

haproxy not running

HAProxy没有运行。这是对的,因为它首先需要配置。接下来,让我们来配置HAProxy。

HAProxy配置

HAProxy的配置文件主要分为以下两部分:

Global:设置进程级参数

Proxies:包括默认、监听、前端、后端参数

Global配置

所有的HAProxy配置都需要在HAProxy服务器haproxy-www上进行。

首先,复制一份默认的haproxycfg文件:

cd /etc/haproxy; sudo cp haproxycfg haproxycfgorig

现在,使用文本编辑器打开haproxycfg文件:

sudo vi /etc/haproxy/haproxycfg

你将看到有两部分已经被定义:global和defaults。首先,我们将对一些默认参数做一些修改。

在默认情况下,找到一下两行:

mode http

option httplog

将其中http替换为tcp,结果如下:

mode tcp

option tcplog

选择tcp作为HAProxy执行第4层负载平衡模式配置。在我们的例子中,这意味着一个特定的IP地址和端口中所有传入的流量将被转发到同一后端。如果你不熟悉这一概念,请阅读在HAProxy介绍中的负载均衡小节。

先不要关闭配置文件,我们将加上proxy配置。

代理配置(Proxyies)

我们首先要做的事情是增加前端。对一个基本的4层负载均衡设置,前端监听一个特定的IP地址和端口的流量,并将传入流量转发到一个指定的后端。

在配置文件的末尾,让我们添加上我们的前端:www。请将haproxy_www_public_IP替换为你自己的haproxy-www服务器IP地址:

frontend www

bind haproxy_www_public_IP:80

default_backend wordpress-backend

以下是对上面的前端配置代码片段中的每一行是什么意思做出解释:

frontend www:指定了一个名为“www”的前端,我们将用它来处理传入www的流量

bind haproxywwwpublic_IP:80:将haproxywwwpublic_IP替换为你haproxy-www服务器的外网ip。这是告诉haproxy这个前端将处理这个ip和端口上的流量。

default_backend wordpress-backend:这指定所有这些前端的流量将会转发到wordpress-backend,这在下一步我们将定义

配置完前端后,继续将以下后端配置加入文件末尾:

backend wordpress-backend

balance roundrobin

mode tcp

server wordpress-1 wordpress_1_private_IP:80 check

server wordpress-2 wordpress_2_private_IP:80 check

以下是对上面每行配置的解释:

backend wordpress-backend:指定了一个名为“wordpress-backend”的后端

balance roundrobin:指定该后端将使用“轮循”的负载均衡算法

server wordpress-1 :指定了一个名为“wordpress-1”的后端服务器,内外nagIP(你必须替换为你自己服务器ip)和端口监听,在这个例子中为80端口。“check”选项表示使负载均衡器对这个服务器定期进行健康检查

server wordpress-2 :指定了一个名为“wordpress-2”的后端

保存并退出。

现在HAProxy可以启动了,但是让我们先开启日志功能。

开始HAProxy日志功能

启用HAproxy日志功能非常简单,首先编辑rsyslogconf文件:

sudo vi /etc/rsyslogconf

接着找到一下两行,取消这两行注释来开启UDP日志功能:

$ModLoad imudp

$UDPServerRun 514

$UDPServerAddress 127001

现在重启rsyslog来使新配置生效:

sudo service rsyslog restart

HAProxy日志功能现在已经开启了!日志文件将在HAProxy启动后被放在/var/log/haproxylog。

启动HAProxy和PHP/Nginx

在haproxy-www服务器上,启动HAProxy来使配置生效:

sudo service haproxy restart

取决于你如何设置您的新应用程序服务器,您可能需要重新启动你的WordPress应用程序通过重启PHP和Nginx。

在wordpress-2服务器上,重启PHP和Nginx:

sudo service php5-fpm restart

sudo service nginx restart

现在WordPress应该运行在两个应用程序服务器,它们是负载均衡的。但仍有最后一个配置需要更改。

更新WordPress配置

现在你的WordPress应用程序的URL已经改变,我们必须在WordPress更新几个设置。

在wordpress服务器,编辑你的wp-configphp文件。它位于WordPress的安装位置(在本教程中,它是安装在/var/www/examplecom但你安装可能会有所不同):

cd /var/www/examplecom; sudo vi wp-configphp

找到"DB_NAME"所在行;增加以下配置在该行之上,并且替换红色的值:

define('WP_SITEURL', 'http://haproxy_www_public_IP');

define('WP_HOME', 'http://haproxy_www_public_IP');

保存并退出。

现在WordPress url配置为指向您的负载平衡器,而不是只有最初的WordPress服务器,而且在当你试着访问wp-admin控制台时发挥作用。

负载均衡完成

您的web应用程序服务器现在是负载均衡的。你的负载平衡WordPress现在可以访问您的用户通过负载均衡器haproxy-www的外网IP地址或域名访问!

总结

现在您的用户将在两个wordpress服务器之间负载。另外,如果其中一个wordpress挂了,那么您的站点仍然是可用的,因为另一个wordpress服务器仍然在处理流量。

使用此设置,记住你的HAProxy负载均衡服务器haproxy-www以及数据库服务器mysql-1,需要为你的网站运行正常而工作。

1本文由程序员学架构摘译

2 本文译自https://wwwdigitaloceancom/community/tutorials/how-to-use-haproxy-as-a-layer-4-load-balancer-for-wordpress-application-servers-on-ubuntu-14-04

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 负载均衡是什么?有什么用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情