- 进程管理与安全类
- ca-base <dir>
- chroot <jail dir>
- cpu-map <"all"|"odd"|"even"|process_num> <cpu-set>…
- crt-base <dir>
- daemon
- deviceatlas-json-file <path>
- deviceatlas-log-level <value>
- deviceatlas-separator <char>
- deviceatlas-properties-cookies <name>
- external-check
- gid <number>
- hard-stop-after <time>
进程管理与安全类
ca-base <dir>
指定一个获取 SSL CA 证书和 CRLs 的默认目录。
ca-file
和crl-file
两个指令如果设置为相对路径,则以此目录为基础。
ca-file
和crl-file
如果设置为绝对路径,则ca-base
会被忽略。
chroot <jail dir>
把 HAProxy 的工作目录更改到<jail dir>
,并在放弃权限前执行chroot()
操作。这个设置能提升安全性:当系统被入侵时,使黑客很难找到系统的弱并攻破它。此设置仅当以超级用户的权限执行时才有效。
请留意:一定要保证<jail dir>
是空白目录,并且任何用户都没有可读权限。
cpu-map <"all"|"odd"|"even"|process_num> <cpu-set>…
将一个进程绑定到指定的 CPU 集上,此设置仅在 Linux 2.6 或以上版本才有效。进行此设置意味着进程只允许在某一 CPU 集上运行。
第一个参数指定将要被绑定的进程数,必须是 1~32 或 1~64 中的数字(取决于你的机器是 32 还是 64 位的),此时 nbproc 上的 PID 将被忽略。设置为all
表示所有进程,设置为odd
表示奇数的进程,even
表示偶数的进程。这和使用bing-process
指令是一个意思。
第二个参数指定 CPU 集。每个 CPU 集都有自己的唯一编号,范围在 0~31 或 0~63,由两个这样的数字加上一个“-”连接符组成。你可以指定多个 CPU 或范围用以允许进程对其做绑定。
你可以编写多个cpu-map
指令,但只有最后一个指令会生效,上面的都会被覆盖。
crt-base <dir>
指定一个获取 SSL 证书的默认目录。
crtfile
指令如果设置为相对路径,则以此目录为基础。如果crtfile
设置为绝对路径,则本设置会被忽略。
daemon
使进程工作在守护模式下,推荐默认启用。该设置项等同命令行的-D
选项,可以使用-db
选项来关闭这个设置。
deviceatlas-json-file <path>
设置 API 所加载的 DeviceAtlas JSON 数据的路径。该路径必须指向一个合法的 JSON 数据,并且 HAProxy 有权限可访问。
deviceatlas-log-level <value>
设置 API 返回的信息等级。该配置项可选,默认值为0
。
deviceatlas-separator <char>
设置 API 返回结果中属性之间的分隔符。默认值是|
。
deviceatlas-properties-cookies <name>
设置当客户端请求时使用的 DeviceAtlas 组件的 cookie 名。该配置项可选,默认值为DAPROPS
。
external-check
设置允许使用外部代理进行健康检查。出于安全考虑,改设置默认关闭。
(参看:option external-check(TODO))
gid <number>
设置进程的组 ID 为<number>
。推荐使用专属于 HAProxy 或类似守护进程的组 ID。HAProxy 必须以属于该组的用户的权限来运行,或者以超级用户的权限来运行。
请留意,如果 HAProxy 以超级用户的权限运行,而该用户拥有补充组,则 HAProxy 只会丢弃它们。
hard-stop-after <time>
设置一个强行清除 soft-stop 动作的超时时间。参数<time>默认为毫秒,指的是当 HAProxy 运行实例收到 SIGUSR1 信号而执行 soft-stop 后的最大超时时间。
设置该设置项可以确保在实例因执行 soft-stop 却被一些长连接(比如 TCP 模式下有一个超长的超时时间设置)阻止退出时依然能退出。TCP 或 HTTP 模式均有效。