在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器

简介:

Crossroads 是一个独立的服务,它是一个用于Linux和TCP服务的开源负载均衡和故障转移实用程序。它可用于HTTP,HTTPS,SSH,SMTP 和 DNS 等,它也是一个多线程的工具,在提供负载均衡服务时,它可以只使用一块内存空间以此来提高性能。

首先来看看 XR 是如何工作的。我们可以将 XR 放到网络客户端和服务器之间,它可以将客户端的请求分配到服务器上以平衡负载。

如果一台服务器宕机,XR 会转发客户端请求到另一个服务器,所以客户感觉不到停顿。看看下面的图来了解什么样的情况下,我们要使用 XR 处理。

安装 XR Crossroads 负载均衡器

安装 XR Crossroads 负载均衡器

这里有两个 Web 服务器,一个网关服务器,我们将在网关服务器上安装和设置 XR 以接收客户端请求,并分发到服务器。

    XR Crossroads 网关服务器:172.16.1.204

    Web 服务器01:172.16.1.222

    Web 服务器02:192.168.1.161

在上述情况下,我们网关服务器(即 XR Crossroads)的IP地址是172.16.1.204,webserver01 为172.16.1.222,它监听8888端口,webserver02 是192.168.1.161,它监听端口5555。

现在,我们需要的是均衡所有的请求,通过 XR 网关从网上接收请求然后分发它到两个web服务器已达到负载均衡。

第1步:在网关服务器上安装 XR Crossroads 负载均衡器

1. 不幸的是,没有为 crossroads 提供可用的 RPM 包,我们只能从源码安装。

要编译 XR,你必须在系统上安装 C++ 编译器和 GNU make 组件,才能避免安装错误。


 
 
  1. # yum install gcc gcc-c++ make

接下来,去他们的官方网站(https://crossroads.e-tunity.com)下载此压缩包(即 crossroads-stable.tar.gz)。

或者,您可以使用 wget 去下载包然后解压在任何位置(如:/usr/src/),进入解压目录,并使用 “make install” 命令安装。


 
 
  1. # wget https://crossroads.e-tunity.com/downloads/crossroads-stable.tar.gz
  2. # tar -xvf crossroads-stable.tar.gz
  3. # cd crossroads-2.74/
  4. # make install

安装 XR Crossroads 负载均衡器

安装 XR Crossroads 负载均衡器

安装完成后,二进制文件安装在 /usr/sbin 目录下,XR 的配置文件在 /etc 下名为 “xrctl.xml” 。

2. 最后一个条件,你需要两个web服务器。为了方便使用,我在一台服务器中创建两个 Python SimpleHTTPServer 实例。

要了解如何设置一个 python SimpleHTTPServer,请阅读我们此处的文章 使用 SimpleHTTPServer 轻松创建两个 web 服务器.

正如我所说的,我们要使用两个web服务器,webserver01 通过8888端口运行在172.16.1.222上,webserver02 通过5555端口运行在192.168.1.161上。

XR WebServer 01

XR WebServer 01

XR WebServer 02

XR WebServer 02

第2步: 配置 XR Crossroads 负载均衡器

3. 所需都已经就绪。现在我们要做的就是配置xrctl.xml 文件并通过 XR 服务器接受来自互联网的请求分发到 web 服务器上。

现在用 vi/vim 编辑器打开xrctl.xml文件。


 
 
  1. # vim /etc/xrctl.xml

并作如下修改。


 
 
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <system>
  4. <uselogger>true</uselogger>
  5. <logdir>/tmp</logdir>
  6. </system>
  7. <service>
  8. <name>Tecmint</name>
  9. <server>
  10. <address>172.16.1.204:8080</address>
  11. <type>tcp</type>
  12. <webinterface>0:8010</webinterface>
  13. <verbose>yes</verbose>
  14. <clientreadtimeout>0</clientreadtimeout>
  15. <clientwritetimout>0</clientwritetimeout>
  16. <backendreadtimeout>0</backendreadtimeout>
  17. <backendwritetimeout>0</backendwritetimeout>
  18. </server>
  19. <backend>
  20. <address>172.16.1.222:8888</address>
  21. </backend>
  22. <backend>
  23. <address>192.168.1.161:5555</address>
  24. </backend>
  25. </service>
  26. </configuration>

配置 XR Crossroads 负载均衡器

配置 XR Crossroads 负载均衡器

在这里,你可以看到在 xrctl.xml 中配置了一个非常基本的 XR 。我已经定义了 XR 服务器在哪里,XR 的后端服务和端口及 XR 的 web 管理界面是什么。

4. 现在,你需要通过以下命令来启动该 XR 守护进程。


 
 
  1. # xrctl start
  2. # xrctl status

启动 XR Crossroads

启动 XR Crossroads

5. 好的。现在是时候来检查该配置是否可以工作正常了。打开两个网页浏览器,输入 XR 服务器的 IP 地址和端口,并查看输出。

验证 Web 服务器负载均衡

验证 Web 服务器负载均衡

太棒了。它工作正常。是时候玩玩 XR 了。(LCTT 译注:可以看到两个请求分别分配到了不同服务器。)

6. 现在可以通过我们配置的网络管理界面的端口来登录到 XR Crossroads 仪表盘。在浏览器输入你的 XR 服务器的 IP 地址和你配置在 xrctl.xml 中的管理端口。


 
 
  1. http://172.16.1.204:8010

XR Crossroads 仪表盘

XR Crossroads 仪表盘

看起来像上面一样。它容易理解,用户界面​​友好,易于使用。它在右上角显示每个服务器能容纳多少个连接,以及关于接收该请求的附加细节。你也可以设置每个服务器承担的负载量,最大连接数和平均负载等。

最大的好处是,即使没有配置文件 xrctl.xml,你也可以做到这一点。你唯一要做的就是运行以下命令,它就会把这一切搞定。


 
 
  1. # xr --verbose --server tcp:172.16.1.204:8080 --backend 172.16.1.222:8888 --backend 192.168.1.161:5555

上面语法的详细说明:

  • -verbose 将显示命令执行后的信息。
  • -server 定义你在安装包中的 XR 服务器。
  • -backend 定义你需要平衡分配到 Web 服务器的流量。
  • tcp 说明我们使用 TCP 服务。

欲了解更多详情,有关文件及 CROSSROADS 的配置,请访问他们的官方网站: https://crossroads.e-tunity.com/.

XR Corssroads 使用许多方法来提高服务器性能,避免宕机,让你的管理任务更轻松,更简便。希望你喜欢此文章,并随时在下面发表你的评论和建议,方便与我们保持联系。

原文发布时间为:2015-07-23



本文来自云栖社区合作伙伴“Linux中国


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
12月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
1067 17
|
11月前
|
Ubuntu 安全 小程序
服务器版本的CentOS和Ubuntu哪个更适合你?
但是以上的比较并不说明Ubuntu是不稳定的或者是不安全的,只是以上比较过程中,在稳定性方面Ubuntu稍微逊色了一点。由于Ubuntu在个人桌面电脑的使用率远远高于CentOS,用Ubuntu搭建服务器,如果遇到什么问题,寻找解决方案相对比较容易,这让Ubuntu在选择方面更优于CentOS。如果你是一个初学者,那么毫无疑问Ubuntu是更适合的选择。如果你正在经营自己的公司,在这两者之间,CentOS会更好一些。
|
12月前
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
537 0
|
Kubernetes Ubuntu Linux
阿里云服务器使用centos还是ubuntu?
在选择阿里云服务器操作系统时,CentOS和Ubuntu各有优势。CentOS以企业级稳定性著称,适合数据库、ERP等长期稳定需求;而Ubuntu开发者友好,支持最新硬件与功能,更适合开发/测试环境及云计算场景。两者在阿里云上均有官方镜像支持,性能差异可忽略。无特殊需求时推荐Ubuntu 22.04 LTS,若需RHEL生态则选AlmaLinux。根据实际需求、团队技术栈及场景灵活决策,阿里云还支持更换系统盘降低试错成本。
|
存储 安全 Linux
CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
699 18
|
存储 运维 网络协议
【Syslog】Centos下的syslog服务器配置
通过本文的配置指导,您不仅学会了如何安装和配置 `rsyslog`,还掌握了如何在防火墙中开放必要的端口,并验证服务器的配置是否正确。希望这些知识能够帮助您更好地管理和维护您的Linux系统。
2978 15
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
503 1
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
485 2
|
存储 网络协议 Linux
AWS实操-EC2-创建购买linux(centos)EC2服务器
AWS实操-EC2-创建购买linux(centos)EC2服务器