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

图 3. 重复启动 dsserver 后 log 文件内容

执行 lbadmin 命令启动 LoadBalancer 的配置界面,如图 4 所示。

图 4. LoadBalancer 配置界面

  1. 添加本机为 LoadBalancer 的 Host,右击 Dispatcher,选择 Connect to Host …,这时就会将本机添加为 Host 主机。
  2. 右击 Host,选择 start Executor, 这样可以启动执行器。
  3. 启动执行器之后,右击执行器 Executor 选择 Add Cluster 选项开始构建 cluster。
  4. 在弹出的窗口中输入 Cluster  name , Cluster IP 和 LoadBalancer 的 Host IP 保存并退出。
  5. 右击在第 6 步中新建的 Cluster, 选择 Add port 为 HTTP Cluster 添加端口号。通过 Cluster IP 和该端口号可以将来自服务器对该端口的应用请求分别分发到不同的 HTTP Server 上。在该节中我们构建的是 HTTP Cluster,所以将该端口号填为 80,即 HTTP 的默认端口。
  6. 右击 Port 并选择 Add Server,分别将两个 HTTP Server 添加到该 Cluster 中。
  7. 右击 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 端口

重新启动 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 文件

编辑 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 端口

编辑 HTTP Server 配置文件,添加 443 虚拟端口。进入 conf 配置子目录,编辑 Httpd.conf 文件,在该文件最后添加代码为 HTTP Server 的本机 IP 和 Cluster IP 都开启 443 虚拟端口,否则会导致访问不成功。添加后如图 8 所示。

图 8. 添加 443 虚拟端口

编辑 HTTP Server 配置文件,添加 ssl key 文件。

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

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

添加后如图 9 所示。

图 9. 在 httpd.conf 文件中添加 key 文件

  1. 保存 httpd.conf 文件并退出。
  2. 重新启动 HTTP Server。
  3. 在另一台 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 页面

查看管理信息输出,在终端输入如下命令,可以看到构建好的 Cluster 的详细信息,如图 11 所示。从图上可以看到 HTTP Server 的详细信息和状态。

dscontrol manager rep

图 11. LoadBalancer 的管理信息图

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

Dscontrol advisor report https 443

图 12. Security HTTP Server Cluster 信息

  1. 在浏览器中输入 https://ClusterIP:443,IHS 的欢迎页如果可以出现就说明 Security HTTP Server Cluster 配置成功。
 
 
 
 

Loadbalancer的更多相关文章

  1. HighAvailability和LoadBalancer

    HighAvailability                         LoadBalancer 红帽RHCS                                lvs(三种工作 ...

  2. 转载NodePort,LoadBalancer还是Ingress?我该如何选择 - kubernetes

    原文:http://mp.weixin.qq.com/s/dHaiX3H421jBhnzgCCsktg ClusterIP ClusterIP服务是Kuberntets的默认服务.它在集群内部生成一个 ...

  3. NodePort,LoadBalancer还是Ingress?我该如何选择 - kubernetes

    原文:http://mp.weixin.qq.com/s/dHaiX3H421jBhnzgCCsktg 当我们使用k8s集群部署好应用的Service时,默认的Service类型是ClusterIP, ...

  4. Kubernetes的三种外部访问方式:NodePort、LoadBalancer和Ingress(转发)

    原文 http://cloud.51cto.com/art/201804/570386.htm Kubernetes的三种外部访问方式:NodePort.LoadBalancer和Ingress 最近 ...

  5. Kubernetes的三种外部访问方式:NodePort、LoadBalancer和Ingress

    NodePort,LoadBalancer和Ingress之间的区别.它们都是将集群外部流量导入到集群内的方式,只是实现方式不同. ClusterIP ClusterIP服务是Kubernetes的默 ...

  6. Use a load-balancer as a first row of defense against DDOS

    We’ve seen recently more and more DOS and DDOS attacks. Some of them were very big, requiring thousa ...

  7. service几种访问类型(集群外负载均衡访问LoadBalancer , 集群内访问ClusterIP,VPC内网负载均衡LoadBalancer ,集群外访问NodePort)

    一.集群外访问(负载均衡) kind: ServiceapiVersion: v1spec: ports: - protocol: TCP port: 4341 targetPort: 8080 no ...

  8. SpringCloud使用Feign出现java.lang.ClassNotFoundException: org.springframework.cloud.client.loadbalancer.LoadBalancedRetryFactory异常

    废话不多说!!! 在SpringCloud项目中配置了Feign来调用restful接口,项目启动的时候报错,报错信息如下: 找不到org.springframework.cloud.client.l ...

  9. 【Kubernetes】Kubernetes的Service外部访问方式:NodePort和LoadBalancer

    Kubernetes的Pod的寿命是有限的,它们不会复活,因此尽管每个Pod都有自己的IP地址,但是这些IP地址是不可靠的,会随着Pod的消亡而消失. 这就带来一个问题,如果一些Pod的集合(称之为b ...

随机推荐

  1. $Django setting.py配置 ,GET、POST深入理解,三件套,orm对象关系映射简介

    1 django中app的概念: 大学:----------------- 项目  信息学院 ----------app01  物理学院-----------app02 ****强调***:创建的每一 ...

  2. zabbix批量监控urls的状态码

    .添加url监控脚本 [root@node1 usr]# vim /usr/local/zabbix_agents_3.2.0/scripts/web_site_code_status.sh #!/b ...

  3. Mysql 通过frm&ibd 恢复数据

    mysql存储在磁盘中,各种天灾人祸都会导致数据丢失.大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的.万一还没有做好备份,数据被误删除 ...

  4. use Swig to create C/C++ extension for Python

    SWIG is a software development tool that simplifies the task of interfacing different languages to C ...

  5. Ubuntu选择软件源

    1. 系统桌面右上角,系统菜单中选择Software Up to Date 2. 点击Settings-按钮 3. Ubuntu Software标签页,Download from选择中国的软件服务器 ...

  6. SpringBoot中常见注解含义总结

    @RestController @RestController被称为一个构造型(stereotype)注解.它为阅读代码的开发人员提供建议.对于Spring,该类扮演了一个特殊角色.它继承自@Cont ...

  7. linux 过滤内存使用率并于计划任务结合来自动清理内存缓存

    过滤出内存使用率并进行判断 #!/bin/bash echo "###cleand free_cache script########" #memory usage mem_pus ...

  8. nginx记录post body/payload数据

    1. 文档 在nginx中想利用$request_body命令获取post请求的body参数,并落日志,但是发现该变量值为空,查看官网中对$request_body的描述如下: $request_bo ...

  9. 关于Sublime text 3如何编辑less并转(编译)成css文件

    今天开始学习使用less这个强大方便的前端工具,本来是考虑用koala(专门编辑less的软件)来使用less的,但是发现sublime编辑器也可以实现对less的编译及高亮显示代码,这样既能少用一个 ...

  10. 支付宝(查询对账单下载地址(alipay.data.dataservice.bill.downloadurl.query))

    通过url下载zip对账单文件,进行解压,读取压缩文件内容. import java.io.BufferedOutputStream; import java.io.BufferedReader; i ...