概述 #
本文的目的是解释如何放大应用程序服务器等功能 Tomcat的, Jboss的 or IIS的 通过使它们具有高度的Web可扩展性,并通过高可用性设置它们以容忍故障,以及如何加强网络安全。
什么是高可用性? #
高可用性是系统或组件的质量,可确保高于正常时间段的高水平操作性能(通常为正常运行时间)。
通过设置 应用服务器 在高可用性中,我们解决了以下问题:
- 处理大量请求时,单个服务器会降低效率
- 如果服务器发生故障,会保留会话数据
- 更新应用程序而不中断服务
什么是网络规模? #
将Web规模原则应用于应用程序服务器,任何规模的所有业务流程都能够增长,优化,自动化和有效扩展。
什么是应用服务器? #
应用程序服务器是为应用程序提供业务逻辑的软件框架,这意味着它管理资源以创建Web应用程序和服务器环境来运行它们。
虽然本文可以作为任何应用程序服务器的指南,但我们将解释一些最流行的细节,它们是:
- 此 Tomcat的 软件(或称为Apache Tomcat或Tomcat服务器):Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket技术的开源实现。
- JBoss的 or WildFly:Red Hat开发的应用程序服务器。
- IIS的 (Internet信息服务):Microsoft开发的应用程序服务器。
配置 RELIANOID 负载均衡器 #
与 RELIANOID 负载均衡器 我们可以确保应用服务器的高可用性和可扩展性。请注意,要遵循这些说明,需要安装一个实例 RELIANOID 负载均衡器和多个应用服务器实例。我们将要描述的环境如下:

步骤0:服务器复制 #
在我们的示例中,我们为每个应用程序使用两个后端服务器,但我们可以根据需要包含多个后端服务器。 确保一致性至关重要,这样在连接到应用程序服务器时,我们总能看到相同的内容,并且应用程序中保存的所有数据都不会丢失。 为此,必须设置服务器内的会话复制。 我们称之为 第一步 因为这必须在应用程序服务器中完成。
Tomcat的 提供内置的内存中会话复制: 器DeltaManager 和 BackUpManager。 这两个复制器之间的主要区别在于 器DeltaManager 更慢,但在发生故障时更可靠。
JBoss的 还提供了一种启用会话复制的简单方法:将应用程序标记为可分发的 web.xml中 描述。
服务复制 IIS的 可以实现使用 DFSR (分布式文件系统复制)。
步骤1:创建虚拟IP #
一旦 RELIANOID 负载均衡器安装完成后,需要创建一个新的虚拟IP,从主菜单中选择 网络->虚拟接口->操作->创建
找到要创建虚拟IP的物理接口
输入新虚拟IP的名称和地址。 然后单击“创建”按钮将其保存。
步骤2:创建http场 #
服务器场或群集是计算机服务器的集合,可提供显着增强其功能的服务器功能。 虽然我们正在使用这些条款 农场 和 簇 作为同义词,它们之间存在细微差别。 在谈论一个 簇,冗余是隐含的,但在谈论一个 农场,可能有也可能没有任何冗余。 在我们的例子中,由于我们将容忍失败配置,我们可以将farm或cluster视为同义词。
这样,通过设置应用程序服务器场,我们将提高其性能和容错能力,这对于高可用性至关重要。 为了实现这一目标 LSLB->农场->创建
选择一个名称和 HTTP 作为简介。 我们选择http配置文件是因为它是Web服务的最佳选择,因为我们可以在相同的虚拟IP和端口下提供内容切换选项。
将显示另外两个选项。 选择在步骤1上创建的虚拟IP和端口(在示例中我们选择80,因为它是HTTP协议的默认值)并单击 已保存 按钮。
步骤3:添加服务 #
主要思想是从同一个虚拟IP和端口为不同的应用程序服务器提供不同的应用程序。 因此,一旦创建了服务器场,我们就必须对其进行编辑才能添加新服务。 在我们的示例中,我们将设置三个服务。 每个应用程序服务器一个。 请点击按钮 编辑农场.
可以编辑服务器场的一些详细信息,在示例中我们将设置默认值和服务。
在上面的截图我们有 添加了一项服务 服务名称为“ app1”。
由于我们将通过同一个服务器场访问所有三项服务,因此我们需要区分这些服务。 为此,我们可以为其设置值 网址格式。 该字段允许根据客户端通过特定URL模式请求的URL来确定Web服务。 在我们的示例中,我们将键入 ^ / app1。*, ^ / app2。* 和 ^ / app3。*。 点击 修改 应用更改。
考虑到后端必须找到地址 http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (在我们的例子中 http://192.168.56.200/app1),为了保证这一点,必须在您的应用程序中设置上下文。 在我们的示例中,我们将设置上下文 / app1 HPMC胶囊 Tomcat的, / app2 HPMC胶囊 Jboss的 和 / app3 HPMC胶囊 IIS的。 该 语境 表示在特定虚拟主机中运行的Web应用程序。 在特定情况下 IIS的,上下文称为应用程序。
在此示例中,每个应用程序有两个后端服务器。 我们选择IP,端口(默认为8080 for Tomcat的 和 JBoss的和80 for IIS的),超时和重量,然后单击 保存后端 按钮。
我们希望避免服务器换向:如果在我们的会话期间我们从一个服务器跳转到另一个服务器,则会有效率,数据甚至通信丢失。 为了避免这种情况 持久性会话 必须配置。 我们将选择按会话ID维护会话,这意味着在会话期间,我们将只连接到一个服务器。
在服务全局参数中,我们现在可以将持久性会话字段更改为 COOKIE:某个饼干
从我们的数据库中通过 UL Prospector 平台选择 JSESSIONID 作为Tomcat和Jboss的持久性会话标识符 的SessionID 对于IIS,然后单击页面底部的更新。
现在,在同一个服务器场下,我们需要以相同的方式为app2和app1添加2个服务,其中包括针对JBoss的持久性cookie(默认名为 JSESSIONID)和IIS(ASP.NET的默认cookie是 ASPXAUTH),分别但您可以使用应用程序所需的cookie。 农场中的每项服务都有自己的后端,可以在农场或农场服务之间共享。
请注意,服务的顺序对于匹配正确的URL模式很重要。
最后,我们必须通过重新启动服务器场来应用这些更改。
祝贺您! 您已将应用程序服务器配置为高可用性。 您可以通过键入来访问它 http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (在我们的例子中 http://192.168.56.200/app1, http://192.168.56.200/app2 or http://192.168.56.200/app3).
步骤4:高级检查 #
我们现在将设置服务器监视器,以便对后端执行高级运行状况检查,确保它们启动,运行并正确执行应用程序,而不仅仅是TCP端口检查。 请找到 农场卫报 我们在步骤3中设置了您的服务。 点击 使用FarmGuardian检查后端服务器,你也可以修改检查之间的时间,最后,在 要检查的命令 在文本框中,键入以下命令。
check_http -I 主机 -w 10 -c 10 -t 10 -e 200 -p 端口 -s ' ‘
最后,单击页面底部的“更新”。
命令 check_http 测试与指定主机的HTTP连接。 在我们的例子中,我们使用以下选项:
- 我主持:令牌HOST将被定义的后端IP地址替换。
-w 10:导致警告状态的响应时间:10秒
-c 10:对临界状态的响应时间:10秒
-t 10:连接超时前的10秒
-e 200:期望字符串200处于服务器响应的状态
-p PORT:令牌PORT将由定义的后端端口替换。
-s' ':内容中应包含的字符串为“ '
因此,此命令将要做的基本上是检查我们是否获得200 OK响应,并且该响应命令包含字符串' '。 我们选择此字符串是因为它位于响应的末尾,这样我们可以保证从后端得到完整的答案。
步骤5:高安全性 #
可以轻松建立安全通信 RELIANOID 负载均衡器,因此下一步是启用 HTTPS 侦听器:在 编辑场全局参数 屏幕,请将服务器场监听器从HTTP更改为HTTPS,将虚拟端口更改为443。
现在,可以通过键入来访问服务 https://[Your_virtual_ip]/[yourappservice] 您的浏览器。
安全通信现在正在运行,但我们可以通过配置HTTPS参数来进一步:在服务器场全局参数中,找到 HTTPS设置 部分。 我们可以改变 密码 至 高安全性.
密码字段用于构建SSL连接接受的密码列表,以加强SSL连接。 通过选择 高安全性,我们默认设置密码。
kEECDH+ECDSA+AES128:kEECDH+ECDSA+AES256:kEECDH+AES128:kEECDH+AES256:kEDH+AES128:kEDH+AES256:DES-CBC3-SHA:+SHA:!aNULL:!eNULL:!LOW:!kECDH:!DSS:!MD5:!EXP:!PSK:!SRP:!CAMELLIA:!SEED
另一种选择是 HTTPS证书可用:将显示为当前服务器场选择的证书列表(仅适用于HTTP场,这是我们的情况)。 我们可以从列表中选择一个并单击 添加。 最后,点击 修改 并重新启动服务器场以应用更改。
欲了解更多信息,请参阅 HTTP配置文件场.
也可以在应用程序服务器中启用HTTPS,如果是这种情况,则必须启用该选项 HTTPS后端.










