HAProxy 入门及基础负载应用

栏目: 服务器 · 发布时间: 6年前

内容简介:HAProxy 入门及基础负载应用

A、首介。。。

HAProxy ——开放源代码软件,是一款代理服务器和伪4层的负载均衡软件解决方案。 基于TCP(第四层)和HTTP(第七层)应用的代理软件 ,支持高并发链接,它的工作模式可以将其简单而安全地整合到当前的服务架构中,同时可以保护你的WEB服务器不暴露到网络上(设置成代理来实现的 通过VIP将后端的web服务器隐藏到内网中)。haproxy进入了商业版本以后,就进入了快速迭代周期,目前正在维护的版本有 1.4  1.5  1.6  1.7;

B、特点。。。

b1、免费开源,稳定性非常好

b2、支持链接拒绝,可以用于防止DDoS攻击

b3、 支持虚拟主机

b4、 能够补充Nginx的一些缺点,路由HTTP请求到后端服务器,基于cookie作会话绑定;同时支持通过获取指定的url来检测后端服务器的状态

b5、能够将多个请求反代至后端主机完成负载均衡的效果

b6、通过一个URI接口web应用程序为通过身份验证的用户提供报告详细状态.

b7、 自带监控服务器状态的页面,实时监控状态、强大的后端主机健康检测功能.

b8、支持 单一进程模型,事件驱动,弹性二叉树;

b9、 负载均衡策略算法较多、具体有如下8种:

① roundrobin,表示简单的轮询,这个是负载均衡基本都具备的;

② static-rr,表示根据权重,选择 server 的逻辑最为简单

③ leastconn,表示最少连接者先处理

④ source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似,用其作为解决session问题的一种方法

⑤ ri,表示根据请求的URI;

⑥ rl_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name;

⑦ hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;

⑧ rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

C、安装。。。

安装较为简单,在Centos6.4版本后,haproxy就被收录进ISO光盘的base仓库,可见其较高的市场占有率和大众接受度,

c1、查看安装信息 yum info haproxy   

c2、安装  yum install haproxy  -y              

D、程序环境。。。 

d1、程序配置文件路径

配置文件:/etc/haproxy/haproxy.cfg

                Unit File:/usr/lib/systemd/system/haproxy.service (CentOS7)

                主程序:/usr/sbin/haproxy

                日志管理辅助:/usr/bin/halog

                网段计算辅助文件:/usr/bin/iprange

内建的错误页文件:

/usr/share/haproxy/400.http

/usr/share/haproxy/403.http

/usr/share/haproxy/408.http

/usr/share/haproxy/500.http

/usr/share/haproxy/502.http

/usr/share/haproxy/503.http

/usr/share/haproxy/504.http             

d2、Haproxy配置文件分析

首先备份下

cp /etc/haproxy/haproxy.cfg{,.bak}

打开haproxy.cfg

vim /etc/haproxy/haproxy.cfg

global: 全局配置段,参数是进程级的,通常是和操作系统相关,如果配置无误,就不需要再次进行修改

proxles 代理配置段如下:

— defaults <name>:  为frontend, backend以及listen提供默认配置;

— frontend <name>:  相当于nginx的server段,接收请求的前端虚拟节点

— backend <name>: 后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器,相当于nginx的upstream段,

E、基础负载测试。。。

测试准备

     e1、3台主机,第1台(7.3)安装haproxy做调试器,第2,3台(6.8)安装httpd做web应用,配置/var/www/html/index.html测试页面,(3台IP之间需互通)

e2、启动服务: service httpd start,并监测80端口是否开启,ss -tnlp |grep 80 , 浏览器访问时确认关闭防火墙:iptables -F 及selinux : getenforce,

e3、确认可正常浏览

HAProxy 入门及基础负载应用

e4、接下来配置haproxy负载,仅更改几个配置点即可,主要更改frontend和backend段

  1.  可自定义frontend的main名称,加端口即可,如web的80 , ohoh *:80
  2.  default_backend 也可自定,不要和main名称一样即好, web_ser
  3. 此段的中间几行,默认即可,也可删除
  4. 配置backend段,修改backend名称同上web_ser
  5. balance默认调度算法 roundrobin简单轮询,默认
  6. 复制一行server, 将后端的两台http服务器IP和端口写入。保存退出
  7. 启动haproxy服务, systemctl  start  haproxy.service

HAProxy 入门及基础负载应用

END:浏览器访问,刷新查看两台切换

HAProxy 入门及基础负载应用

HAProxy 入门及基础负载应用

待续。。。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构与算法分析(C++版)(第3版)

数据结构与算法分析(C++版)(第3版)

Clifford A. Shaffer / 张铭、刘晓丹、等译 / 电子工业出版社 / 2013 / 59.00元

本书采用当前流行的面向对象的C++程序设计语言来描述数据结构和算法, 因为C++语言是程序员最广泛使用的语言。因此, 程序员可以把本书中的许多算法直接应用于将来的实际项目中。尽管数据结构和算法在设计本质上还是很底层的东西, 并不像大型软件工程项目开发那样, 对面向对象方法具有直接的依赖性, 因此有人会认为并不需要采用高层次的面向对象技术来描述底层算法。 但是采用C++语言能更好地体现抽象数据类型的......一起来看看 《数据结构与算法分析(C++版)(第3版)》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试