Loadbalancer

1. What is loadbalancer ?

LoadBalancer 可以将来自客户端的请求分发到不同的服务器,通过将一系列的请求转发到不同的服务器可以提高服务器的性能,并可以自动地寻找最优的服务器转发请求,这样不仅提高了系统性能,同时达到了负载均衡的目的,满足了用户需求,因此 LoadBalancer 在应用场景中一般处于 web 服务器的前端,用来均衡发到 web 服务器的请求量,均衡负载,提高系统性能。LoadBalancer 可以连接多个 web server,从而将多个 web server 组成一个集群(cluster),集群中负载的分配通过 loadBalancer 进行控制和管理。当然为了更好地进行负载均衡,LoadBalancer 也可以构建为一个集群,使用 LoadBalancer 构建的 web server cluster

图 1. 使用 LoadBalancer 构建的 web server cluster 的一般场景

2. How to configure loadbalancer ?

WebSphere Edge Load Balancer 在 Linux 环境下的安装

我们需要在 Linux 环境下安装 LoadBalancer,Linux 的系统环境为 64bit 的 Redhat6.2,将要安装的 LoadBalancer 版本为 V8.0.0.6。因为 LoadBalancer V8.0 只有在升级到 V8.0.0.6 之后才可以正常使用,所以我们除了要安装 LoadBalancer8.0 之外,还要将其升级为 V8.0.0.6。有图形界面和命令行两种安装方式。

在安装 LoadBalancer 之前,首先要安装 IBM Installation Manager。目前可以在 Linux 64bit 环境下正常运行的 IM 最低版本为 1.6,建议使用。因为在命令行界面使用 IM 安装和在图形界面使用 IM 安装步骤基本一致,为了简便起见,下面只介绍 LoadBalancer 在图像界面下的安装。

LoadBalancer 的图形界面安装

  1. 启动 IM1.6。
  2. 在 IM1.6 中添加 LoadBalancer V8.0 的 repository。
  3. 测试是否正确连接。
  4. 点击 IM 界面上的 Install 按钮启动安装界面。
  5. 按照步骤进行相应的选择,执行安装,直到安装成功。
  6. 在 IM1.6 中添加 fixpack6 的 repository。
  7. 测试连接成功后,在 IM 安装界面选择 Update 按钮更新现有的 LoadBalancer V8.0。
  8. 按照步骤提示进行相应选择,直到更新成功。

使用 WebSphere Edge Load Balancer 构建 IBM Http Server Cluster

如图 1 所示,可以使用 LoadBalancer 将多个 web Server 构建为一个 Cluster,同时 LoadBalancer 也可以构成一个 Cluster,这里我们以使用一个 LoadBalancer 将两台 HTTP Server 构成一个集群为例介绍在 Linux 环境下如何使用 WebSphere Edge Load Balancer 构建 IBM Http Server Cluster。

前期准备

  1. 为了构建 HTTP Server Cluster,首先需要有两台装有 HTTP Server 的 VM. 同时需要有一台装有 LoadBalancer 的 VM。因为这三台机器要互相交互,所以要保证它们之间可以互相 ping 通并且在同一个网段内。因此需要在每一台机器的 hosts 文件中添加进去另外两台机器的 ip 和 hostname,以便这三台机器之间进行交互。
  2. 需要一个同一网段内的另一个没有被任何 VM 占用的 IP 作为 Cluster 的 IP。为了确保所使用的 IP 没有被任何 VM 占用,可以在 Windows 的终端内输入 nslookup IP 命令进行查询,如果显示如法查找到该 IP,表示该 IP 是可以作为 Cluster 的 IP 被使用的。
  3. 需要将 Cluster IP 作为一个虚拟网络 IP 配置到 HTTP Server 的虚拟网卡上。需要在终端执行以下命令:

    # ifconfig lo:1 Cluster IP netmask 255.255.255.255 up

    在两台 HTTP Server 上都需要执行上述配置命令,这样配置好的 Cluster 才可以通过 Cluster IP 将服务器请求分发到两台 HTTP Server 上完成负载均衡。

  4. 需要启动 HTTP Server。在装有 HTTP Server 的 VM 上,进入到 HTTP Server 的安装目录,进入 bin 目录,运行 # ./apachect1 命令启动 HTTP Server。

使用 LoadBalancer 配置 HTTP Server Cluster

  1. 执行命令 dsserver 启动服务。注意执行完该命令后不会出现任何提示,但是从 server.log 里可以看到系统启动信息。Log 文件位于 LoadBalancer 安装目录下的 servers/logs/dispatcher 子目录下面。启动后 log 文件内容如图 2 所示。不要重复执行 dsserver 命令,第二次执行时候会提示:Error: can not create registry on port 10,099. 此时不能认为是出现错误,因为再次看 log 就会发现是因为 Server 已经启动缘故。如图 3 所示。
    图 2. dsserver 启动后 log 文件内容
    图 2 dsserver 启动后 log 文件内容
    图 3. 重复启动 dsserver 后 log 文件内容
    图 3 重复启动 dsserver 后 log 文件内容
  2. 执行 lbadmin 命令启动 LoadBalancer 的配置界面,如图 4 所示。
    图 4. LoadBalancer 配置界面
    图 4 LoadBalancer 配置界面
  3. 添加本机为 LoadBalancer 的 Host,右击 Dispatcher,选择 Connect to Host …,这时就会将本机添加为 Host 主机。
  4. 右击 Host,选择 start Executor, 这样可以启动执行器。
  5. 启动执行器之后,右击执行器 Executor 选择 Add Cluster 选项开始构建 cluster。
  6. 在弹出的窗口中输入 Cluster  name , Cluster IP 和 LoadBalancer 的 Host IP 保存并退出。
  7. 右击在第 6 步中新建的 Cluster, 选择 Add port 为 HTTP Cluster 添加端口号。通过 Cluster IP 和该端口号可以将来自服务器对该端口的应用请求分别分发到不同的 HTTP Server 上。在该节中我们构建的是 HTTP Cluster,所以将该端口号填为 80,即 HTTP 的默认端口。
  8. 右击 Port 并选择 Add Server,分别将两个 HTTP Server 添加到该 Cluster 中。
  9. 右击 Host 选择 Start Manager 可以启动 Cluster。

IBM HTTP Server 的配置

为了达到能够通过 Cluster IP 来分发负载的功能,在每个 HTTP Server 上都需要进行相应的配置。配置完成后该 HTTP Server 不仅能够侦听来自本 IP 80 端口的请求,也可以侦听来自 Cluster IP 80 端口的请求。

在安装有 HTTP Server 的机器上,进入 HTTP Server 的安装目录,默认为 /opt/IBM/HTTPServer/,进入配置文件子目录 conf,编辑配置文件 Httpd.conf 将 Listen 端口处编辑为 Listen HTTPServer IP:80 和 Listen Cluster IP:80. 如图 5 所示。

图 5. 配置 HTTP Server 时侦听 80 端口

图 5 配置 HTTP Server 时侦听 80 端口

重新启动 HTTP Server,至此使用 LoadBalancer 构建 HTTP Server Cluster 的步骤已经完成,这也是为下一节使用 LoadBalancer 构建 Security IBM HTTP Cluster 做的准备和铺垫,所以在下节构建好 Security IBM HTTP Server Cluster 后将一并描述如何测试构建起来的 Cluster 是否成功。


使用 WebSphere Edge Load Balancer 构建 Security IBM Http Server Cluster

在上一节构建起来的 Http Server Cluster 的基础上,我们进一步来构建 Security IBM HTTP Server Cluster。

前期准备工作由于上节已经做过,在该节可以忽略。接着我们使用 LoadBalance 配置 Security HTTP Server Cluster,前 6 步与上节相同,在第 7 步添加端口时,要添加 Security 端口,默认值为 443。之后在该端口下添加 HTTP Server,添加完成后启动 Manager。配置 HTTP Server Cluster 与配置 Security HTTP Server Cluster 的主要区别在于对 HTTP Server 的配置。

由于我们所要配置的是 Security HTTP Cluster,因此必须保证每个 HTTP Server 节点都可以通过 https 访问主机。所以首先要在 HTTP Server 的机器上生成进行安全访问是使用的 key 文件。

HTTP Server 的配置

  1. 进入 HTTP Server 的安装目录,进入 bin 子目录下,执行如下命令可以生成名为 ihsserverkd 的 key 文件。

    # ./gsk7cmd -keydb -create -db ihsserverkdb -pw passw0rd  -stash

    执行完命令后,在 bin 目录下将会生成 ihsserverkdb.kdb 和 ihsserverkdb.rdb 文件,如图 6 所示。上述命令中,ihsserverkdb 为 key 文件的名字,passw0rd 为 keydb 的密码,当然可以根据个人的喜好进行改变。

    图 6. 产生 key 文件
    图 6 产生 key 文件
  2. 编辑 HTTP Server 配置文件,开启对安全端口 443 的侦听。进入 HTTP Server 的安装目录,默认为 /opt/IBM/HTTPServer/, 进入配置文件子目录 conf,编辑配置文件 Httpd.conf,在 Listen 端口处添加 Listen HTTPServer IP:443 和 Listen Cluster IP:443 如图 7 所示。
    图 7. 配置 HTTP Server 时侦听 443 端口
    图 7 配置 HTTP Server 时侦听 443 端口
  3. 编辑 HTTP Server 配置文件,添加 443 虚拟端口。进入 conf 配置子目录,编辑 Httpd.conf 文件,在该文件最后添加代码为 HTTP Server 的本机 IP 和 Cluster IP 都开启 443 虚拟端口,否则会导致访问不成功。添加后如图 8 所示。
    图 8. 添加 443 虚拟端口
    图 8 添加 443 虚拟端口
  4. 编辑 HTTP Server 配置文件,添加 ssl key 文件。

    编辑 Httpd.conf 文件,在该文件最后添加如下代码来指定访问时所要使用的 ssl key 文件。

    KeyFile "/opt/IBM/HTTPServer/bin/ihsserverkdb.kdb"

    添加后如图 9 所示。

    图 9. 在 httpd.conf 文件中添加 key 文件
    图 9 在 httpd.conf 文件中添加 key 文件
  5. 保存 httpd.conf 文件并退出。
  6. 重新启动 HTTP Server。
  7. 在另一台 HTTP Server 上也执行与步骤 1-6 同样的操作。

至此使用 LoadBalancer 构建 Security HTTP Server Cluster 的步骤已经完成,下面测试下构建起来的 Security HTTP Server Cluster 是否能够正常工作。

测试 Security IBM HTTP Server Cluster

可以通过以下四个方面测试 Security IBM HTTP Cluster 的构建是否成功。

  1. 通过 LoadBalancer 的配置页面查看 Security HTTP Server Cluster,单击 Refresh Statistics 按钮,观察 HTTP Server 的负载信息是否会发生变化,如图 10 所示。如果负载信息会发生变化说明 Security IBM HTTP Server Cluster 构建成功。
    图 10. Security HTTP Server Cluster 配置完成后的 LoadBalancer 页面
    图 10 Security HTTP Server Cluster 配置完成后的 LoadBalancer 页面
  2. 查看管理信息输出,在终端输入如下命令,可以看到构建好的 Cluster 的详细信息,如图 11 所示。从图上可以看到 HTTP Server 的详细信息和状态。

    dscontrol manager rep

    图 11. LoadBalancer 的管理信息图
    图 11 LoadBalancer 的管理信息图
  3. 查看 advisor report 的输出,在终端输入如下命令查看端口 443 的信息,如图 12 所示。

    Dscontrol advisor report https 443

    图 12. Security HTTP Server Cluster 信息
    图 12 Security HTTP Server Cluster 信息
  4. 在浏览器中输入 https://ClusterIP:443,IHS 的欢迎页如果可以出现就说明 Security HTTP Server Cluster 配置成功。
原文地址:https://www.cnblogs.com/corsacsherry/p/4589147.html