设为首页 收藏本站
查看: 1166|回复: 0

[经验分享] haproxy学习笔记之配置文件参数详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-8 09:39:53 | 显示全部楼层 |阅读模式
全局配置
"global"配置中的参数为进程级别的参数,且通常与其运行的OS相关。
* 进程管理以及安全相关的参数
-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:haproxy运行的进程pid文件位置目录
-ulimit -n:设定每进程所能够打开的最大文件描述符数目,默认情况下其会自动进行计算,因此不推荐修改此选项;
-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系统调用;不过,在linux2.6.25-28系列的内核上,tcp重组功能有bug存在;- spread-checks <0..50, in percent>: 在haproxy后端有这众多服务器的场景中,在精确的时间间隔后统一对众服务器进行健康状态检查可能会带来意外问题;此选项用于将其检查的时间间隔长度上增加或减小一定的随机时长;
- tune.bufsize <number>: 设定buffer的大小,同样的内存条件小,较小的值可以让haproxy有能力接受更多的并发连接,较大的值可能让某些应用程序使用较大的cookie信息;默认为16384,其可以在编译时修改,不过强烈建议使用默认值;
- tune.chksize(number);设定检查缓冲区的大小,单位为字节;更大的值有助于在较大的页面中完成基于字符串或模式的文本查找,但也会占用更多的系统资源;不建议修改;
tune.maxaccept<number>:设定haproxy进程内核调度运行时一次性可以接受的连接的个数,较大的值可以带来较大的吞吐率,默认在单进程模式下为100,多进程模式为8,设定为-1可以禁止此限制,一般不建议修改;
- tune.maxpollevents <number>:设定一次系统调用可以处理的事件最大数,默认值取决于OS;其值小于200时可节约带宽,但会略微增大网络延迟,而大于200时会降低延迟,但会稍稍增加网络带宽的占用量;
tune.maxrewrite <number>:设定为首部重写或追加而预留的缓冲空间,建议使用1024左右的大小;在需要使用更大的空间时,haproxy会自动增加其值;
- tune.rcvbuf.client <number>:
- tune.rcvbuf.server <number>:设定内核套接字中服务端或客户端接受缓冲的大小,单位为字节,强烈推荐
使用默认值;

代理配置
  代理相关的配置可以如下配置段中。
  - defaults <name>
  - frontend <name>
  - backend <name>
  - listen <name>
  "defaults"段用于为所有其它配置段提供默认参数,这配置默认配置参数可由下一个"defaults"所重新设定。
  "frontend"段用于定义一系列监听的套接字,这些套接字可接受客户端请求并与之建立连接。
  "backend"段用于定义一系列"后端"服务器,代理将会将对应客户端的请求转发至这些服务器。
  "listen"段通过关联"前端"和"后端"定义了一个完整的代理,通常只对TCP流量有用。
  所有代理的名称只能使用大小写字母、数字、-(中线)、_(下划线)、.(点号)和:(冒号)。此外,ACL 名称会区分字母大小写。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-161730-1-1.html 上篇帖子: Centos7安装haproxy 下篇帖子: Haproxy+Keepalived集群实例配置 配置文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表