位置: 编程技术 - 正文

Linux系统下配置HTTP负载均衡系统以扛流量增加(linux系统的配置)

编辑:rootadmin

推荐整理分享Linux系统下配置HTTP负载均衡系统以扛流量增加(linux系统的配置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux怎么配置,linux配置命令,linux配置eno1,linux配置eno1,linux基本配置,linux系统的配置过程,linux系统的配置过程,linux 配置,内容如对您有帮助,希望把文章链接给更多的朋友!

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

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

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

  HTTP负载均衡简介

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

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

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

  HAProxy是什么东东?

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

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

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

  前提条件

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

  将HAProxy安装到Linux上

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

  将HAProxy安装到Debian上

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

  deb 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地址分别为...2和...3。我们还假设,负载均衡系统将在IP地址为...4的那台服务器处进行配置。

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

  1. 配置日志功能

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

  CentOS或RHEL:

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

  log .0.0.1 local2

  换成:

  log .0.0.1 local0

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

  $ModLoad imudp $UDPServerRun $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 .0.0.1 local0

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

  $ModLoad imudp $UDPServerRun $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 contimeout clitimeout srvtimeout

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

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

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

  listen webfarm *: 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 web ...2: cookie node1 check server web ...3: cookie node2 check

Linux系统下配置HTTP负载均衡系统以扛流量增加(linux系统的配置)

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

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

  上述设置声明,可以在

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

  “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 web ...2: cookie node1 check server web ...3: cookie node2 check

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

  启动HAProxy

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

  在Centos/RHEL上启动HAProxy

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

  # chkconfig haproxy on # service haproxy start

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

  CentOS/RHEL 7上的防火墙:

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

  CentOS/RHEL 6上的防火墙:

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

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

  然后重启iptables:

  # service iptables restart

  在Debian上启动HAProxy

  使用下列指令启动HAProxy:

  # service haproxy start

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

  A INPUT ­p tcp ­­dport ­j ACCEPT

  在Ubuntu上启动HAProxy

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

  ENABLED=1

  启动HAProxy:

  # service haproxy start

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

  # ufw allow

  测试HAProxy

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

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

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

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

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

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

  Server IP: ...2

  X-Forwarded-for: ...4

  Server IP: ...3

  X-Forwarded-for: ...4

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

  结束语

  至此,你应该有了一套完全实用的负载均衡系统,能够在轮叫循环模式下为你的网站节点提供请求。与往常一样,你可以随意更改配置,让它更适合自己的基础设施。希望本教程帮助你让自己的网站项目具有更强的抗压力和更高的可用性。

  正如大家已经注意到的那样,本教程所含的设置适用于仅仅一套负载均衡系统。这意味着,我们把一个单一故障点换成了另一个单一故障点。在实际场景下,你应该部署至少两套或三套负载均衡系统,以防范可能出现的任何故障,但这不在本教程的讨论范围之内。

  上面就是Linux系统下配置HTTP负载均衡系统的方法介绍了,这里主要使用的是HAProxy,且只介绍了配置一套负载均衡系统的方法,赶紧试试看吧。

Linux下使用httpry来嗅探HTTP流量教程 出于某种需要有时会想要嗅探HTTP流量,那么Linux系统下要如何嗅探HTTP流量呢?下面小编就给大家介绍下Linux系统下嗅探HTTP流量的工具httpry,一起来了解

Linux下touch命令有什么作用如何使用? 在Linux命令中,我们会经常使用到cd、ls等命令,但像touch这样的命令就比较少用了,那么touch命令有什么作用呢?下面随小编一起来了解下Linux下touch命令

Linux下cat命令有哪些用途如何使用? Linux系统下如果要同时显示多个文件的内容,就要使用cat命令了,那么cat命令还有那些用途呢?下面随小编一起来了解下Linux下cat命令的用法。cat命令的

标签: linux系统的配置

本文链接地址:https://www.jiuchutong.com/biancheng/366918.html 转载请保留说明!

上一篇:在Linux上将文本文件转换成PDF格式的教程(linux将文本写入文件)

下一篇:Linux下使用httpry来嗅探HTTP流量教程

  • 视同内销增值税怎么申报
  • 划转国有划拨土地要交契税吗?
  • 企业季度所得税计算公式
  • 进口货物的会计科目
  • 公司会计日常工作内容
  • 网购商品怎么报销
  • 基本医疗保险基金与生育保险基金
  • 本月无销项只有进项申报表如何填写
  • 劳务公司增值税怎么抵扣
  • 增值税进行未认定怎么办
  • 资产负债表中资产总计和负债所有者权益不平等
  • 酒店固定资产明细表范本
  • 初级考试备考计划
  • 支付员工补偿金计入管理费用的福利费用吗
  • 购货方预付货款的分录
  • 对公工行证书收入摘要写什么
  • 事业单位的账务
  • 应收账款未计提坏账,但是确实收不回来
  • 日用品 食品
  • 信用证保证金会退还吗
  • 用ghost装win10
  • searchnavversion.exe - searchnavversion是什么进程 作用是什么
  • php快速查找
  • 股东的车辆保险费可在公司报销?
  • 制造费用主要包括哪些费用
  • 企业接受现金捐赠如何开具发票
  • PHP:oci_bind_array_by_name()的用法_Oracle函数
  • 收到现金股利或债券利息时会计分录
  • 金融负债期末可以转出吗
  • 一般纳税人简易征收3%可以开专票吗
  • 微信小程序webview支付
  • vue项目中技巧知识点
  • 后端中spef文件和spf文件
  • php基于单例模式开发
  • 收入调节方式有哪三种
  • 税务机关代开的增值税专用发票不含税销售额是什么意思
  • 核销对哪些单据对应关系进行的操作
  • 专家咨询费比例不能超过多少
  • access创建一个表
  • 土地租赁费属于什么收入
  • 出口结汇有哪些常用方法?
  • 工程项目工资表
  • 工程施工和工程结算的账务处理
  • 资产负债表和利润表的区别
  • 企业缴纳耕地占补多少
  • 收到员工社保
  • 国有企业无偿划转股权缴纳印花税
  • 出口退税转免税怎么写个说明
  • 新会计准则会计科目明细表
  • 物流公司保险怎么买
  • 新成立的公司如何申请资质
  • 应收账款折率
  • 零售商品储存的核算包括[ ]
  • MySQL之Field‘***’doesn’t have a default value错误解决办法
  • Mysql5.7.11在windows10上的安装与配置(解压版)
  • aspnet开发和运行环境
  • mysql5.7.
  • xp操作系统还能用吗
  • macoshosts文件位置
  • mac怎么删除应用保留数据
  • Linux系统防火墙的命令
  • win8开始菜单在右边
  • Win10 Mobile Build 10586.29更新内容大全:修复多项问题
  • WIN7如何设置屏幕保护密码
  • AndEngine 《Android游戏开发实践指南》之“吸血鬼游戏”实例学习(一)
  • jQuery+Ajax实现无刷新分页
  • require jquery
  • 不要使用CSS Expression的原因分析
  • Android UI之GridLayout(网格布局)
  • sticky memo widget
  • CentOS下mysql定时备份Shell脚本分享
  • staticlayout 换行
  • jquery实现点击按钮
  • 自治区地方税务局于立民简介
  • 青岛税税通怎么切换企业
  • 石家庄有线电视客服电话9688
  • 关于抓落实的诗句
  • 融资租赁做什么业务
  • 新疆国税网
  • 中国十大经济农村
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设