haproxy常用配置
haproxy 理论
它可以反向代理http/tcp协议,七层和四层的负载均衡解决方案
七层的负载解决方案是因为他们支持高级特性,工作在用户空间,请求从用户空间转换到内核空间是非常浪费硬件资源的。
haproxy有一个monitor接口 可以查看连接状况。
haproxy是一个单一进进程响应众多请求的负载均衡,他可以开启多进程,但是官方不建议开启多进程。haproxy1.4 还可以根据url进行调度,这样可以提高缓存命中率。这也是使用haproxy的重要原因之一。
还可以根据acl进行持久连接
环境
角色 主机 IP
haproxy centos6.5 192.168.1.105(桥接)
192.168.3.50(vmnet8) web1 centos6.5 192.168.3.100(vmnet8)
web2 cnntos6.5 192.168.3.101(vmnet8)
web1和web2的网关指向192.168.3.50
一.配置haproxy
[root@localhost ~]# yum -y install haproxy
配置文件
haproxy配置文件有两部分
(1)全局配置:
global 设置进程属性的设定
proxies 代理的配置
defaults
frontend(前端)
backend(后端)
listen(整合前端和后端的)
(2)首先我们通过frontend+backend的方法实现haproxy的负载均衡
[root@localhost ~]# vim /etc/haproxy/haproxy.cfg
#在文件最后定义后端资源组
backend web
balance roundrobin
server web1 192.168.3.100:80 check
server web2 192.168.3.101:80 check
解释:web为定义的资源组的名称
roundrobin:轮询调度算法
web1和web2都为节点的名称,可以自定义,这里的名字用于记录日志使用。
check为健康状态检查
#定义前端(相当于nginx中的server)
frontend webserver *:80
default_backend web
解释:
webserver:为前端的名称,可以定定义
default_backend:将监听在80端口的请求转发给名称为web的资源组
启动haproxy
[root@localhost ~]# service haproxy start
正在启动 haproxy: [确定]
在两个节点中添加index.html,访问http://192.168.3.50,看到轮询效果。
健康状态检查。
停止掉其中的任意一个web服务,会发现,故障的节点将不会被调度。
(3)启动日志记录
[root@localhost ~]# vim /etc/rsyslog.conf
13 $ModLoad imudp
14 $UDPServerRun 514
17 $ModLoad imtcp
18 $InputTCPServerRun 514
启用13,14,17,18行
在62添加一行日志位置
62 local2.* /var/log/haproxy.log
这是全局日志,
我们可以在每个frontend中定义单独的日志文件
格式:
log 127.0.0.1 local3
然后在rsyslog中定义local3及其位置
然后在访问,就会出现日志
4.通过source(ip_hash)算法,将同一客户端的请求到同一台server上去。
基于上边的配置,修改一下算法
backend web
balance source
server web1 192.168.3.100:80 check
server web1 192.168.3.101:80 check
再次访问页面时候,会发现只停留在一个server上面
5.还有一种就是基于url路径转发。
backend web
balance uri
server web1 192.168.3.100:80 check
server web1 192.168.3.101:80 check
只要访问的是同一个路径,会被转发到同一个server上
二、指定haproxy的工作模式
模式有两种
http模式
定义应用层数据深入分析,因此支持7层的过滤。处理,转换等机制
tcp模式
haproxy在客户端和应用服务器之间建立一个全双工的连接,不会对应用层协议 做任何检查。ssl mysql 等都应该使用此模式。
指定模式使用mode参数
三、启用状态监控
[root@localhost haproxy]# vim /etc/haproxy/haproxy.cfg
backend web
balance uri
stats enable
server web1 192.168.3.100:80 check
server web1 192.168.3.101:80 check
访问以下地址
http://192.168.3.50/haproxy?stats
(2)启用认证才能访问状态监控界面
backend web
balance uri
stats enable
stats auth admin:admin
server web1 192.168.3.100:80 check
server web1 192.168.3.101:80 check
(3)启用管理功能
backend web
balance uri
stats enable
stats auth admin:admin
stats admin if TRUE
server web1 192.168.3.100:80 check
server web1 192.168.3.101:80 check
server backup 127.0.0.1:8010 check backup
就是说你通过认证才能使用管理功能
四、设置备用服务器(错误页面服务器)
当所有server宕机,请求会转发至错误错误页面
准备一台单独的web服务器,或者是haproxy本身,但是端口不能使用80
[root@localhost haproxy]# vim /etc/httpd/conf/httpd.conf
Listen 8010
[root@localhost html]# vim /var/www/html/index.html
<h1>error</h1>
vim haproxy.cfg
backend web
balance uri
stats enable
stats auth admin:admin
server web1 192.168.3.100:80 check
server web1 192.168.3.101:80 check
server backup 127.0.0.1:8010 check backup
然后我们宕掉两台web,在访问3.50 会发现页面会跳转至error页面
haproxy常用配置的更多相关文章
- HAPROXY 配置项/配置实例
HAPROXY 配置项/实例 常用配置选项: OPTION 选项: option httpclose :HAProxy会针对客户端的第一条请求的返回添加cookie并返回给客户端,客户端发送后续请求时 ...
- HAproxy部署配置
HAproxy部署配置 拓扑图 说明: haproxy服务器IP:172.16.253.200/16 (外网).192.168.29.140/24(内网) 博客服务器组IP:192.168.29.13 ...
- HAProxy 参数配置
RabbitMQ集群部署完成,通过HAProxy反向代理来提供统一的对RabbitMQ的访问入口. 1.Haproxy提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理.(负载均衡策略有很 ...
- HAProxy详解(二):HAProxy基础配置与应用实例
一.HAProxy基础配置与应用实例: 1.快速安装HAProxy集群软件: HAProxy的官网: https://www.haproxy.org/#down下载HAProxy的源码包. 安装: [ ...
- 负载均衡服务之HAProxy基础配置(一)
前文我们聊了下haproxy的基础安装,以及怎样去代理后端主机的配置:当然没有很详细的去说配置文件中各指令的意思:有关haproxy的安装和代理后端server可以参考本人博客https://www. ...
- 负载均衡服务之HAProxy基础配置(二)
前文我们聊了下haproxy的global配置段中的常用参数的说明以及使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12763245.html:今天我们来 ...
- logback 常用配置详解<appender>
logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...
- 【转】logback logback.xml常用配置详解(三) <filter>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1110008, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 【转】logback logback.xml常用配置详解(二)<appender>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
随机推荐
- SpringBoot 整合 spring security oauth2 jwt完整示例 附源码
废话不说直接进入主题(假设您已对spring security.oauth2.jwt技术的了解,不懂的自行搜索了解) 依赖版本 springboot 2.1.5.RELEASE spring-secu ...
- Python3元组的简介和遍历
一.Python3元组简介 1.1.如何创建一个元组 ''' Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号(),列表使用方括号[]. 元组创建很简单,只需要在括号中添 ...
- 【死磕Java并发】—–深入分析volatile的实现原理
通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized.如果一个变量使用volatile,则它比使 ...
- C语言程序与设计:统计素数并求和
目录 C语言程序与设计:统计素数并求和 1.题目要求 2.分析 3.代码 C语言程序与设计:统计素数并求和 1.题目要求 输入两个正整数 m 和 n(1≤m≤n≤500),统计给定整数 m 和 n 区 ...
- 如何完成符合ISO 26262要求的基于模型设计(MBD)的测试
背景介绍 随着汽车行业的迅速发展,汽车的复杂程度不断增加,越来越多的汽车电子控制系统具有与安全相关的功能,因此对ECU的安全要求也越来越高.复杂的软件功能,将会带来大量的软件风险问题,如何保证软件的安 ...
- AT5341 [ABC156D] Bouquet 题解
Content 有一个人有 \(n\) 种不同的话可供选择,TA 可以选择至少一种花做花束,但是 TA 不喜欢花的种数为 \(a\) 或者 \(b\) 的花束.求选花的方案数对 \(10^9+7\) ...
- Tornado 的安全性保障机制Cookie XSRF跨站请求伪造阻断 &用户验证机制
6.1 Cookie 对于RequestHandler,除了在第二章中讲到的之外,还提供了操作cookie的方法. 设置/获取 注意:Cookie 在浏览器调试时, 只有在第一次访问该网站的时候获取到 ...
- centos7安装docker,并配置镜像加速
yum安装gcc yum -y install gcc yum -y install gcc-c++ 卸载旧版本 (没有可忽略) yum -y remove docker docker-common ...
- git clone报错: Out of memory, malloc failed (tried to allocate 524288000 bytes)
IDEA 拉取项目报错:Out of memory, malloc failed (tried to allocate 524288000 bytes) 执行 git config --global ...
- BERT生成能力改进:分离对话生成和对话理解
NLP论文解读 原创•作者 | 吴雪梦Shinemon 研究方向 | 计算机视觉 导读说明: NLP任务大致可以分为NLU(自然语言理解)和NLG(自然语言生成)两种,NLU负责根据上下文去理解当前用 ...