如何设置基于Ubuntu 8.04 LTS的负载均衡的高可用性Apache集群

基于Ubuntu 8.04 LTS的负载平衡高可用性Apache群集的设计

请注意,我的主要参考资料和来源是Falko的文章刚刚修改为Ubuntu 8.04 LTS。 还有一些部分是从Falko的文章“The Perfect Server - Ubuntu 8.04 LTS”中获得的。

版本1.0
作者:Mohamed Ghaleb <Mohamed_Ghaleb [at] msn [dot] com>(仅英文和德文)

本教程将介绍如何设置提供高可用性的双节点Apache Web服务器集群。 在Apache集群的前面,我们创建了一个负载平衡器,可以在两个Apache节点之间拆分传入的请求。 因为我们不希望负载平衡器成为另一个“单点故障”,所以我们也必须为负载平衡器提供高可用性。 因此,我们的负载平衡器实际上由两个负载平衡器节点组成,它们使用心跳监视彼此,并且如果一个负载平衡器发生故障,则另一个负载平衡器以静默方式接管。

与使用循环DNS相比,使用负载均衡器的优点是它负责web服务器节点上的负载,并尝试以较少的负载将请求定向到节点,并且还负责连接/会话。 许多Web应用程序(例如论坛软件,购物车等)会使用会话,如果您在Apache节点1上的会话中,则如果节点2突然发出请求,您将丢失该会话。 除此之外,如果其中一个Apache节点出现故障,则负载平衡器会将所有传入的请求都指向剩余的节点,这将不可能使用循环DNS。

对于此设置,我们需要四个节点(两个Apache节点和两个负载平衡器节点)和五个 IP地址:一个用于每个节点,一个虚拟IP地址将由负载平衡器节点共享并用于传入的HTTP请求。

我将在这里使用以下设置:

  • Apache节点1: webserver1.tm.localwebserver1 ) - IP地址: 192.168.0.103 ; Apache文档根目录: / var / www
  • Apache节点2: webserver2.tm.localwebserver2 ) - IP地址: 192.168.0.104 ; Apache文档根目录: / var / www
  • 负载均衡器节点1: loadb1.tm.localloadb1 ) - IP地址: 192.168.0.101
  • 负载均衡器节点2: loadb2.tm.localloadb2 ) - IP地址: 192.168.0.102
  • 虚拟IP地址: 192.168.0.105 (用于传入请求)

看看http://www.linuxvirtualserver.org/docs/ha/ultramonkey.html上的图纸,了解这个设置如何。

在本教程中,我将为所有四个节点使用Ubuntu 8.04 LTS ,只需在所有四个节点上安装基本的Ubuntu 8.04 LTS。

我想先说说这不是建立这样一个系统的唯一途径。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!

我也建议你有一个DNS服务器到位。

应在所有四台服务器上完成第1步至6。

1启用根帐户

sudo passwd root

并给root一个密码。 之后,我们通过运行成为根

su

2安装SSH服务器

如果在系统安装期间未安装OpenSSH服务器,则可以立即执行:

apt-get install ssh openssh-server

从现在开始,您可以使用SSH客户端(如PuTTY) ,并从工作站连接到Ubuntu 8.04 LTS服务器,并按照本教程中的其余步骤操作。

3安装vim-full

我将在本教程中使用vi作为我的文本编辑器。 默认的vi程序在Ubuntu和Debian上有一些奇怪的行为; 要解决这个问题,我们安装vim-full

apt-get install vim-full

(如果您使用其他文本编辑器(如joe或nano),则无需执行此操作。)

4配置网络

由于Ubuntu安装程序已将系统配置为通过DHCP获取其网络设置,因此,由于服务器应具有静态IP地址,因此我们必须进行更改。 编辑/ etc / network / interfaces并根据需要进行调整(在这个例子中,我将使用IP地址192.168.0.101 ):

vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.101
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

请确保您的网络配置设置正确,随时根据您的网络配置进行更改。

然后重新启动您的网络:

/etc/init.d/networking restart

然后编辑/ etc / hosts 。 看起来像这样:

vi /etc/hosts
127.0.0.1       localhost.localdomain   localhost
192.168.0.101 loadb1.tm.local loadb1

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

现在跑

echo loadb1.tm.local > /etc/hostname
/etc/init.d/hostname.sh start

之后运行

hostname
hostname -f

两者都应该显示loadb1.tm.local

如果您有DNS服务器(推荐),请确保配置了4台服务器,如果您没有DNS, 请点击此处

vi /etc/resolv.conf
search tm.local
nameserver 192.168.0.100
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏