在CentOS上安装和使用代理软件HAProxy的完全攻略

2020-01-30 14:48:02王旭

us: 微秒(microseconds),即1/1000000秒;
ms: 毫秒(milliseconds),即1/1000秒;
s: 秒(seconds);
m: 分钟(minutes);
h:小时(hours);
d: 天(days);
2.3 全局配置
* 进程管理及安全相关的参数
– chroot <jail dir>:修改haproxy的工作目录至指定的目录并在放弃权限之前执行chroot()操作,可以提升haproxy的安全级别,不过需要注意的是要确保指定的目录为空目录且任何用户均不能有写权限;
– daemon:让haproxy以守护进程的方式工作于后台,其等同于“-D”选项的功能,当然,也可以在命令行中以“-db”选项将其禁用;
– gid <number>:以指定的GID运行haproxy,建议使用专用于运行haproxy的GID,以免因权限问题带来风险;
– group <group name>:同gid,不过指定的组名;
– log <address> <facility> [max level [min level]]:定义全局的syslog服务器,最多可以定义两个;
– log-send-hostname [<string>]:在syslog信息的首部添加当前主机名,可以为“string”指定的名称,也可以缺省使用当前主机名;
– nbproc <number>:指定启动的haproxy进程的个数,只能用于守护进程模式的haproxy;默认只启动一个进程,鉴于调试困难等多方面的原因,一般只在单进程仅能打开少数文件描述符的场景中才使用多进程模式;
– pidfile:
– uid:以指定的UID身份运行haproxy进程;
– ulimit-n:设定每进程所能够打开的最大文件描述符数目,默认情况下其会自动进行计算,因此不推荐修改此选项;Linux默认单进程打开文件数为1024个
– user:同uid,但使用的是用户名;
– stats:用户访问统计数据的接口
– node:定义当前节点的名称,用于HA场景中多haproxy进程共享同一个IP地址时;
– description:当前实例的描述信息;
 
* 性能调整相关的参数
– maxconn <number>:设定每个haproxy进程所接受的最大并发连接数,其等同于命令行选项“-n”;“ulimit -n”自动计算的结果正是参照此参数设定的;
– maxpipes <number>:haproxy使用pipe完成基于内核的tcp报文重组,此选项则用于设定每进程所允许使用的最大pipe个数;每个pipe会打开两个文件描述符,因此,“ulimit -n”自动计算时会根据需要调大此值;默认为maxconn/4,其通常会显得过大;
– noepoll:在Linux系统上禁用epoll机制;
– nokqueue:在BSE系统上禁用kqueue机制;
– nopoll:禁用poll机制;
– nosepoll:在Linux禁用启发式epoll机制;
– nosplice:禁止在Linux套接字上使用内核tcp重组,这会导致更多的recv/send系统调用;不过,在Linux 2.6.25-28系列的内核上,tcp重组功能有bug存在;