⑦ 拥有功能强大的后端服务器的状态监控web页面,可以实时了解设备的运行状态,还可实现设备上下线等简单操作。例:cobbler、samba、httpd
⑧ 支持多种负载均衡调度算法,并且也支持session保持。
4、Haproxy安装方式
(1)Haproxy安装常用两种方式,yum安装和源码包安装
(2)yum 安装:通常是在线安装,好处是安装方式简单,不易出错;常用的安装yum源为epel
(3)源码包安装:是先将 Haproxy 的源码下载下来,在自己的系统里编译生成可执行文件,然后执行,好处是因为是在自己的系统上编译的,更符合自己系统的性能,也就是说在自己的系统上执行 Haproxy服务性能效率更好。
(4)区别:路径和启动方式不同,支持的模块也不同。
5、Haproxy程序路径
主程序:/usr/sbin/haproxy
主配置文件:/etc/haproxy/haproxy.cfg
Unit file:/usr/lib/systemd/system/haproxy.service(centos7)
Init.file :/etc/init.d/haproxy (centos6)
三、Haproxy配置文件结构 1、格式介绍
haproxy 的配置文件由两大部分组成:
全局设定(globalsettings)和 对代理的设定(proxies)
(1)global settings:主要用于定义haproxy进程管理安全及性能相关的参数
(2)proxies共分为4段:defaults,frontend,backend,listen
① defaults <name>:为其它配置段提供默认参数,下面的段可以继承默认参数;默认配置参数可由下一个"defaults"重新设定。
② frontend <name>:定义一系列监听的套接字,这些套接字可接受客户端请求并与之建立连接。可以监听多个端口,例:监听80和3306端口,80请求给后端的web服务器,3306请求给后端的数据库服务器
③ backend <name>:定义"后端"服务器,前端代理服务器将会把客户端的请求调度至这些服务器。
④ listen <name>:定义监听的套接字和后端的服务器。类似于将frontend和backend段放在一起,适用于一对一环境
(3)注意:
① 后端的real server可以属于多个backend组,一个backend可以包括一个或多个real server
② frontend 可以交叉调用backend
2、 global 全局配置参数
(1)和进程安全相关的设置
① nbproc <number> 要启动的haproxy 的进程数量,系统默认单进程,要求使用daemon 模式;和linux的cpu数相关,lscpu可以查看cpu数
② ulimit-n <number> 每个haproxy 进程可打开的最大文件数,系统自动会指定,不建议设置
③ daemon 后端守护方式运行,建议使用
④ user 执行进程的用户
⑤ group 执行进程的组
(2)log 日志的设置
a)日志存放在haproxy的本机上
① vim /etc/rsyslog.conf 在日志服务的配置文件中自定义一条存放haproxy 日志的设置
local2.* /var/log/haproxy.log
service rsyslog restart 重启日志服务
② 在haproxy的全局段设置日志
log 127.0.0.1 local2 日志存放在本机
b)日志存放在远程的机器上
① vim /etc/rsyslog.conf
$ModLoad imudp 远方存放日志的模块打开
$UDPServerRun 514 打开的监听端口
local2.* /var/log/haproxy.log
② 在haproxy的全局段设置日志
log 172.17.22.22 local2 日志存放在远程服务器上
c)将特定信息记录在日志中,略
① 捕获的请求和响应报文中的 cookie 并记录日志
capture cookie <name> len <length>
② 捕获请求报文中指定的首部并记录日志
capture request header <name> len <length>
示例:capture request header X-Forwarded-For len 15
③ 捕获响应报文 中指定的首部并记录 日志
capture response header <name> len <length>
示例:
capture response header Content-length len 9
capture response header Location len 15
(3)性能调整,优化
① maxconn <number>: 设置每个haproxy 进程所能接受的最大并发连接数