广告
返回顶部
首页 > 资讯 > 操作系统 >Linux系统下怎么配置HTTP负载均衡系统
  • 697
分享到

Linux系统下怎么配置HTTP负载均衡系统

2023-06-13 02:06:20 697人浏览 安东尼
摘要

这篇文章主要讲解了“linux系统下怎么配置Http负载均衡系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统下怎么配置HTTP负载均衡系统”吧!  随着网络流量的增加,服务器

这篇文章主要讲解了“linux系统下怎么配置Http负载均衡系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统下怎么配置HTTP负载均衡系统”吧!

  随着网络流量的增加,服务器开始面临繁重负载,这时就需要搭配一套HTTP负载均衡系统了,那么Linux下该如何配置HTTP负载均衡系统呢?随小编一起来学习一下吧。

  如今对基于互联网的应用和服务的要求越来越大,这给广大的IT管理员施加了越来越大的压力。面对突如其来的流量猛增、自生的流量增加或者是内部挑战(比如硬件故障和紧急维护),不管怎样,你的互联网应用都必须保持随时可用。连现代化的开发运营和持续交付做法也会危及互联网服务的可靠性和一贯表现。

  无法预测或缺乏一贯的表现是你所无法承受的。那么,我们如何能消除这些缺点呢?在大多数情况下,一套合适的负载均衡解决方案有望满足这个要求。今天我将为各位介绍如何使用HAProxy搭建一套HTTP负载均衡系统。

  HTTP负载均衡简介

  HTTP负载均衡是一种网络解决方案,负责在托管相同应用内容的几台服务器之间分配进入的HTTP或https流量。由于在多台可用服务器之间均衡了应用请求,负载均衡系统就能防止任何应用服务器变成单一故障点,因而提高了整体的应用可用性和响应能力。它还让你可以随着不断变化的工作负载,轻松地缩小/扩大部署的应用系统的规模,只需添加或删除额外的应用服务器。

  哪里使用负载均衡、何时使用?

  由于负载均衡系统改进了服务器的利用率,最大限度地提高了可用性,只要你的服务器开始面临繁重负载,或者正为一个较庞大的项目规划架构,就应该使用它。事先规划好负载均衡系统的用途是个好习惯。那样,未来你需要扩展环境规模时,它会证明其用途。

  HAProxy是什么东东?

  HAProxy是一种流行的开源负载均衡和代理系统,面向GNU/Linux平台上的tcp/HTTP服务器。HAProxy采用了单一线程的事件驱动型架构而设计,它能够轻松地处理10G网卡线路速度,现广泛应用于许多生产环境中。其功能特性包括:自动检查健康状况、可定制的负载均衡算法、支持HTTPS/SSL以及会话速率限制等。

  我们在本教程中要达到什么样的目的?

  在本教程中,我们将逐步介绍为HTTP网站服务器配置基于HAProxy的负载均衡系统这个过程。

  前提条件

  你至少需要一台(最好是两台)网站服务器来证实所搭建负载均衡系统的功能。我们假设,后端HTTP网站服务器已经搭建并运行起来。

  将HAProxy安装到Linux上

  就大多数发行版而言,我们可以使用你所用发行版的软件包管理器来安装HAProxy。

  将HAProxy安装到Debian上

  在Debian中,我们需要为Wheezy添加向后移植功能。为此,请在/etc/apt/sources.list.d中创建一个名为“backports.list”的新文件,其内容如下:

  deb http://cdn.debian.net/debian wheezy­backports main

  更新你的软件库数据,并安装HAProxy。

  # apt­ get update # apt ­get install haproxy

  将HAProxy安装到ubuntu

  # apt ­get install haproxy

  将HAProxy安装到Centos和RHEL上

  # yum install haproxy

  配置HAProxy

  在本教程中,我们假设有两台HTTP网站服务器已搭建并运行起来,其IP地址分别为192.168.100.2和192.168.100.3。我们还假设,负载均衡系统将在IP地址为192.168.100.4的那台服务器处进行配置。

  为了让HAProxy发挥功用,你需要更改/etc/haproxy/haproxy.cfg中的几个项目。这些变更在本章节中予以描述。万一某个配置对不同的GNU/Linux发行版而言有所不同,会在相应段落中加以注明。

  1. 配置日志功能

  你首先要做的工作之一就是,为你的HAProxy建立合适的日志功能,这对将来进行调试大有用处。日志配置内容位于/etc/haproxy/haproxy.cfg的global部分。下面这些是针对特定发行版的指令,用于为HAProxy配置日志。

  CentOS或RHEL:

  要想在CentOS/RHEL上启用日志功能,把:

  log 127.0.0.1 local2

  换成:

  log 127.0.0.1 local0

  下一步,在/var/log中为HAProxy创建单独的日志文件。为此,我们需要改动当前的rsyslog配置。为了让配置简单而清楚,我们将在/etc/rsyslog.d/中创建一个名为haproxy.conf的新文件,其内容如下。

  $ModLoad imudp $UDPServerRun 514 $template Haproxy,“%msg%\n” local0.=info ­/var/log/haproxy.log;Haproxy local0.notice ­/var/log/haproxy­status.log;Haproxy local0.* ~

  该配置将把基于$template的所有HAProxy消息隔离到/var/log中的日志文件。现在,重启rsyslog,让变更内容生效。

  # service rsyslog restart

  Debian或Ubuntu:

  要想在Debian或Ubuntu上为HAProxy启用日志功能,把:

  log /dev/log local0 log /dev/log local1 notice

  换成:

  log 127.0.0.1 local0

  下一步,为HAProxy配置单独的日志文件,编辑/etc/rsyslog.d/中一个名为haproxy.conf的文件(或者Debian中的49-haproxy.conf),其内容如下。

  $ModLoad imudp $UDPServerRun 514 $template Haproxy,“%msg%\n” local0.=info ­/var/log/haproxy.log;Haproxy local0.notice ­/var/log/haproxy­status.log;Haproxy local0.* ~

  该配置将把基于$template的所有HAProxy消息隔离到/var/log中的日志文件。现在,重启rsyslog,让变更内容生效。

  # service rsyslog restart

  2. 设置默认值

  下一步是为HAProxy设置默认变量。找到/etc/haproxy/haproxy.cfg中的defaults部分,把它换成下列配置。

  log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 20000 contimeout 5000 clitimeout 50000 srvtimeout 50000

  上述配置推荐HTTP负载均衡器使用,但可能不是最适合你环境的解决方案。如果那样,请参阅HAProxy参考手册页,进行适当的改动和调整。

  3. 网站服务器集群的配置

  网站服务器集群WEBfarm)的配置定义了可用的HTTP服务器集群。我们所建负载均衡系统的大部分设置都将放在这里。现在,我们将创建一些基本的配置,我们的节点将在这里加以定义。把从frontend部分到文件末尾的所有配置换成下列代码:

  listen webfarm *:80 mode http stats enable stats uri /haproxy?stats stats realm Haproxy\ Statistics stats auth haproxy:stats balance roundrobin cookie LBN insert indirect nocache option httpclose option forwardfor server web01 192.168.100.2:80 cookie node1 check server web02 192.168.100.3:80 cookie node2 check

  “listen webfarm *:80”这一行定义了我们的负载均衡系统将侦听哪些接口。出于本教程的需要,我将该值设为“*”,这让负载均衡系统侦听我们的所有接口。在实际场景下,这可能不合意,应该换成可从互联网来访问的某个接口。

  stats enable stats uri /haproxy?stats stats realm Haproxy\ Statistics stats auth haproxy:stats

  上述设置声明,可以在http://《load-balancer-IP》/haproxy?stats处访问负载均衡系统的统计数字。这种访问由简单的HTTP验证以及登录名“haproxy”和密码“stats”来确保安全。这些设置应该换成你自己的登录信息。如果你不想让这些统计数字被人看到,那么可以完全禁用它们。 

  下面是HAProxy统计数字的一个例子。

Linux系统下怎么配置HTTP负载均衡系统

 

  “balance roundrobin”这一行定义了我们将使用哪种类型的负载均衡。在本教程中,我们将使用简单的轮叫调度算法,这对HTTP负载均衡来说完全绰绰有余。HAProxy还提供了其他类型的负载均衡:

  •leastconn:连接数最少的服务器优先接收连接。

  •source:对源IP地址进行哈希处理,用运行中服务器的总权重除以哈希值,即可决定哪台服务器将接收请求。

  •uri:URI的左边部分(问号前面)经哈希处理,用运行中服务器的总权重除以哈希值。所得结果决定哪台服务器将接收请求。

  •url_param:变量中指定的URL参数将在每个HTTP GET请求的查询串中进行查询。你基本上可以将使用蓄意制作的URL(crafted URL)的请求定于特定的负载均衡节点。

  •hdr(name):HTTP头《name》 将在每个HTTP请求中进行查询,被定向到特定节点。

  “cookie LBN insert indirect nocache”这一行让我们的负载均衡系统存储持久性cookie,这让我们得以准确查明集群中的哪个节点用于某一个会话。这些节点cookie将与指定的名称一并存储起来。在我们这个例子中,我使用了“LBN”,但你可以指定自己喜欢的任意名称。节点将为该cookie把字符串作为一个值而存储起来。

  server web01 192.168.100.2:80 cookie node1 check server web02 192.168.100.3:80 cookie node2 check

  上述部分对网站服务器节点集群进行了定义。每台服务器都用内部名称(比如web01和web02)、IP地址和独特的cookie串来表示。cookie串可以定义为你需要的任何名称。我使用了简单的node1、node2 。。。 node(n)。

  启动HAProxy

  你完成了配置工作后,可以启动HAProxy,验证一切按预期运行。

  在Centos/RHEL上启动HAProxy

  使用下列指令,让HAProxy能够在系统启动后启动,并打开它:

  # chkconfig haproxy on # service haproxy start

  当然,别忘了启用防火墙中的端口80,如下所示。

  CentOS/RHEL 7上的防火墙:

  # firewall­cmd ­­permanent ­­zone=public ­­add­port=80/tcp # firewall­cmd ­­reload

  CentOS/RHEL 6上的防火墙:

  把下面这一行添加到/etc/sysconfig/iptables中的这部分“:OUTPUT ACCEPT”:

  A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 80 ­j ACCEPT

  然后重启iptables:

  # service iptables restart

  在Debian上启动HAProxy

  使用下列指令启动HAProxy:

  # service haproxy start

  别忘了启用防火墙中的端口80,为此把下面这一行添加到/etc/iptables.up.rules:

  A INPUT ­p tcp ­­dport 80 ­j ACCEPT

  在Ubuntu上启动HAProxy

  让HAProxy能够在系统启动后启动,只要在/etc/default/haproxy中将“ENABLED”选项设为“1”:

  ENABLED=1

  启动HAProxy:

  # service haproxy start

  然后启用防火墙中的端口80:

  # ufw allow 80

  测试HAProxy

  为了检查HAproxy是否在正常工作,我们可以执行下列步骤:

  首先,用下列内容准备好test.php文件:

  《?PHP header(‘Content-Type: text/plain’); echo “Server IP: ”。

  该php文件将告诉我们哪台服务器(即负载均衡系统)转发请求,哪台后端网站服务器实际处理请求。

  把该PHP文件放到这两台后端网站服务器的根目录下。现在,使用curl命令,从负载均衡系统(192.168.100.4)提取这个PHP文件。

  # chkconfig haproxy on # service haproxy start nbsp;curl http://192.168.100.4/test.php

  我们多次运行这个命令时,应该会看到下面两个输出交替出现(由于轮叫调度算法)。

  Server IP: 192.168.100.2

  X-Forwarded-for: 192.168.100.4

  Server IP: 192.168.100.3

  X-Forwarded-for: 192.168.100.4

  如果我们停止这两台后端网站服务器中的其中一台,curl命令应该仍会执行,将请求定向到另一台可用的网站服务器。

感谢各位的阅读,以上就是“Linux系统下怎么配置HTTP负载均衡系统”的内容了,经过本文的学习后,相信大家对Linux系统下怎么配置HTTP负载均衡系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Linux系统下怎么配置HTTP负载均衡系统

本文链接: https://www.lsjlt.com/news/264481.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统下怎么配置HTTP负载均衡系统
    这篇文章主要讲解了“Linux系统下怎么配置HTTP负载均衡系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统下怎么配置HTTP负载均衡系统”吧!  随着网络流量的增加,服务器...
    99+
    2023-06-13
  • 怎么在Linux上使用HAProxy配置HTTP负载均衡系统
    这篇文章主要介绍“怎么在Linux上使用HAProxy配置HTTP负载均衡系统”,在日常操作中,相信很多人在怎么在Linux上使用HAProxy配置HTTP负载均衡系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-16
  • linux怎么查看系统负载均衡
    linux中查看系统负载均衡的方法:1、使用快捷键【Ctrl+Alt+T】打开linux终端;2、使用“#uptime”、“#more /proc/loadavg”、“#more /proc/stat”、“#vmstat”或“#free -...
    99+
    2022-10-04
  • windows下mysql负载均衡怎么配置
    在Windows下配置MySQL负载均衡可以使用MySQL Proxy或者使用第三方的负载均衡软件,如HAProxy。以下是使用My...
    99+
    2023-09-07
    windows mysql 负载均衡
  • 负载均衡能给系统带来什么
    负载均衡能给系统带来:1、能够提高系统的吞吐量;2、有效降低了系统的单点故障率;3、能够让系统降低对外网端口的依赖;4、降低系统对网络带宽的要求;5、能够实现不停机升级系统。具体内容:负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明...
    99+
    2022-10-17
  • linux服务器的负载均衡怎么配置
    在Linux服务器上配置负载均衡可以通过多种方式实现,以下是其中一种常用的方式:1. 安装和配置负载均衡软件:在Linux服务器上安...
    99+
    2023-09-04
    linux服务器 负载均衡
  • web分布式系统的负载均衡怎么实现
    本篇内容介绍了“web分布式系统的负载均衡怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、「负载均衡」是什么  &nbs...
    99+
    2023-06-02
  • 怎么通过Linux命令查看系统平均负载
    这篇文章主要讲解了“怎么通过Linux命令查看系统平均负载”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过Linux命令查看系统平均负载”吧!1、Linux系统的平均负载的概念有时候我...
    99+
    2023-06-12
  • Linux系统负载怎么实现
    本篇内容主要讲解“Linux系统负载怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统负载怎么实现”吧!每个 Linux 发行版中都自带有创建负载的工具。他们不如专门的工具那么...
    99+
    2023-06-28
  • ASP如何在Windows系统下实现高并发请求的负载均衡?
    随着互联网的发展,Web应用程序的访问量越来越大,高并发访问的需求也越来越高。对于ASP应用程序来说,如何实现高并发请求的负载均衡也成为了一个重要的问题。在Windows系统下,可以通过IIS自带的负载均衡器来实现负载均衡。 IIS是Wi...
    99+
    2023-08-05
    load 并发 windows
  • Linux中怎么理解系统负载
    这篇文章主要介绍“Linux中怎么理解系统负载”,在日常操作中,相信很多人在Linux中怎么理解系统负载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中怎么理解系统负载”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-26
  • linux系统下hosts文件怎么配置
    这篇文章主要为大家展示了“linux系统下hosts文件怎么配置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux系统下hosts文件怎么配置”这篇文章吧。 hosts文件  hosts ...
    99+
    2023-06-09
  • Linux系统下怎么配置samba服务
    小编给大家分享一下Linux系统下怎么配置samba服务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Samba是在Linux和UNIX系统上实现SMB协议的一个...
    99+
    2023-06-28
  • Linux CentOS系统下tomcat怎么配置ssl
    本篇内容主要讲解“Linux CentOS系统下tomcat怎么配置ssl”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux CentOS系统下tomcat怎么配置ssl”吧!今天给公司同...
    99+
    2023-06-13
  • linux怎么查看系统负载情况
    linux中查看系统负载情况的方法:1、打开终端;2、输入“uptime”命令查看系统负载信息即可。具体操作步骤:使用快捷键【Ctrl+Alt+T】打开终端命令行模式。输入以下命令查看系统负载信息即可。uptime #查看系统负载信息注:返...
    99+
    2022-10-21
  • linux系统下FTP服务器怎么配置
    这篇文章主要讲解了“linux系统下FTP服务器怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux系统下FTP服务器怎么配置”吧!  安装vsftprhel4系统中包...
    99+
    2023-06-10
  • Linux系统下怎么配置CVS服务器
    本篇内容介绍了“Linux系统下怎么配置CVS服务器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1,安装好CVS服务器rpm -ivh c...
    99+
    2023-06-10
  • 数据库系统应怎么实现负载平衡
    小编给大家分享一下数据库系统应怎么实现负载平衡,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!  数据库系统应如何负载平衡  通常没有人在作数据库的Load Balance,即便做的话,只是...
    99+
    2022-10-18
  • Linux系统中怎么配置ADSL
    这篇文章主要为大家展示了“Linux系统中怎么配置ADSL”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统中怎么配置ADSL”这篇文章吧。安装ADSL在linux环境下,是通过rp-...
    99+
    2023-06-28
  • Linux系统中怎么配置jdk
    本篇内容主要讲解“Linux系统中怎么配置jdk”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统中怎么配置jdk”吧!jdk简介:JDK   Java SE De...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作