HAProxy 配置文件

HAProxy 配置由五个非必选组件组成:

  • global
    通常和操作系统相关。

  • defaults
    配置默认参数,这些参数可以被利用到 frontend、backend、listen 组件。若 frontend、backend 和 listen 重新配置 defaults 中的参数,那么前者会使用重新配置的新值。

  • frontend
    接收请求的前端虚拟节点,frontend 可以根据规则直接指定具体使用后端的backend(可动态选择)。

  • backend
    后端服务集群的配置,是真实的服务器,一个 Backend 对应一个或者多个实体服务器。

  • listen
    Frontend 和 Backend 的组合体。

HAProxy 主要配置:

global	# 全局配置
	log		127.0.0.1   local0		# 日志输出配置,所有日志都记录在本机,通过 local 0输出
	chroot	/usr/local/haproxy		# 改变当前工作目录
	uid		99						#所属运行的用户uid
	gid		99						#所属运行的用户组
	pidfile	/usr/haproxy.pid		#pid文件位置
	
	maxconn	4096					# 最大连接数
	daemon							# 以后台形式运行ha-proxy
	nbproc	3						# 启动3个 ha-proxy 实例

defaults	# 默认配置
	log		global
	log		127.0.0.1	local3		# 日志文件的输出定向
	option  httplog					# 日志类别,采用httplog
	
	option  httpclose				# 每次请求完毕后主动关闭http通道,ha-proxy不支持keep-alive,只能模拟这种模式的实现
	 option  dontlognull			# 保证 HAProxy 不记录上级负载均衡发送过来的用于检测状态没有数据的心跳包
	option  forwardfor				# 如果后端服务器需要获得客户端真实 ip 需要配置的参数,可以从 Http Header 中获得客户端 ip
	option	redispatch				# 是否允许重新分配在session 失败后
	retries 2						# 2次连接失败就认为服务器不可用,主要通过后面的 check 检查          
	maxconn 2000					# 最大连接数
	balance roundrobin				# 负载均衡算法
	stats	uri	/haproxy-stats		# HAProxy 监控页面的访问地址,可通过http://ip/haproxy-stats访问
	contimeout	5000				# 连接超时时间       
	clitimeout	50000				# 客户端连接超时时间
	srvtimeout	50000				# 服务器端连接超时时间

listen  proxy_web
	mode http
	option forwardfor
	balance roundrobin
	
	cookie ServerID prefix
	cookie JSESSIONID prefix
	capture request header Cookie len 200
	capture request header X-Forwarded-For len 15
	capture request header Host len 15
	capture request header Referrer len 15
	appsession JSESSIONID len 52 timeout 1080000

	bind :16002
	#option forwardfor except 192.168.0.159	
	
	option httpchk GET /ok.jsp HTTP/1.0		# 用于健康检测的后端页面
	server app_1 192.168.0.243:8080 cookie app1 minconn 100 maxconn 40960 check inter 5000 rise 2 fall 5 weight 2
	server app_2 192.168.0.242:8080 cookie app2 minconn 100 maxconn 40960 check inter 2000 rise 2 fall 5 weight 2
	server app_4 192.168.0.245:8080 cookie app2 minconn 100 maxconn 40960 check inter 2000 rise 2 fall 5 weight 1
     
	stats enable
	stats uri /haproxy-stat
	stats realm "test_123 monitor"
	stats auth admin:admin

HAProxy 支持两种主要的代理模式:

  • 4层(TCP,)。该模式下,HAproxy 仅在客户端和服务器之间转发双向流量。
  • 7层(HTTP)。该模式下,HAProxy 会对协议进行分析,并能通过允许、拒绝、交换、增加、修改或者删除请求(request)或者响应(response)里指定内容来控制协议,这种操作要基于特定规则。

另外,Haproxy 也可用于 MySQL 数据库(读操作)的负载均衡。

同一客户端访问服务器,Haproxy 保持回话的三种方案:

  • Haproxy 将客户端 IP 进行 Hash 计算并保存,由此确保相同 IP 访问时被转发到同一真实服务器上;
  • Haproxy 依靠真实服务器发送给客户端的 cookie 信息进行回话保持;
  • Haproxy 保存真实服务器的 session 及服务器标识,实现会话保持功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值