一、 haproxy 介绍
1. 简介
可靠的、高性能 TCP/HTTP 负载均衡器
HAProxy 由法国开发者威利塔罗(Willy Tarreau)于 2000 年使用 C 语言开发并首次发布,HAProxy 是一款免费、非常快速且可靠的反向代理,提供 高可用性 、 负载均衡 ,以及针对 TCP 和基于 HTTP 的应用程序的代理服务(目前还不支持UDP代理)。它特别适用于流量极高的网站,并为全球访问量最大的网站提供了重要支持。
haproxy开源地址:https://www.haproxy.org/
haproxy企业版地址:https://www.haproxy.com/
git目录地址:https://git.haproxy.org/git/
发布地址: https://www.haproxy.org/download/
github地址:https://github.com/haproxy/haproxy/
文档地址:https://docs.haproxy.org/
haproxy 当前LTS版本:3.2
2. 主要特点:
- 高性能:HAProxy 专为高负载场景设计,能够处理数十万的并发连接,延迟极低。
- 广泛的协议支持:支持第 4 层(TCP)和第 7 层(HTTP/HTTPS)协议,适用于各种网络应用。
- 细粒度控制:提供了丰富的配置选项,可以精细地控制流量调度、健康检查和连接管理。
- 高可用性:支持主备切换、会话保持和 SSL 终止等功能,确保系统的高可用性。
3. 工作原理
HAProxy 是一种高性能的事件驱动、非阻塞引擎,专为快速数据转发设计。它通过基于优先级的多线程调度器优化 CPU 使用,将连接尽量保持在同一 CPU 上以提升缓存效率,采用分层模型并设有旁路机制,减少不必要的数据处理,主要处理工作在内核中完成,还为内核提供提示以加快工作进程。其处理时间与内核时间占比在不同模式下有所不同,单进程可运行多个代理实例,配置较大时也能良好运行,通常单核心、单 CPU 配置就能满足多数用户需求,适合容器和虚拟机用户使用小镜像以节省成本和简化故障排除,但运行机器不能交换, CPU 不能被人为限制或与计算密集型进程共享,以免产生高上下文切换延迟,可通过线程利用所有处理能力,每个 CPU 核心对应一个线程,用于 SSL 或高速数据转发时,要避免多个物理 CPU 间通信造成瓶颈,有时减少 HAProxy 运行的 CPU 数量可解决性能问题。HAProxy 运行只需可执行程序和配置文件,建议配置好 syslog 守 段进程进行日志记录,也可将日志发送到 stdout/stderr,配置文件启动前会解析,绑定监听套接字失败则拒绝启动,启动后主要进行处理传入连接、定期检查服务器状态、与其他 haproxy 节点交换信息这三项工作,其中处理传入连接较为复杂,包括接受连接、应用前端处理规则、传递给后端服务器群组、应用后端处理规则、按负载均衡策略决定转发服务器、应用后端及前端处理规则于响应数据、发出日志、根据情况关闭连接或等待新请求等步骤。前端和后端有时被视为半代理,只关注各自一侧连接,HAProxy 也支持完全代理,对于 HTTP 处理,配置通常分为前端和后端,而对于仅用 TCP 代理,完整配置更易读。
4. HAProxy的工作流程如下:
- 客户端发送请求到HAProxy的前端(frontend)。
- 前端根据配置的规则,选择合适的后端(backend)。
- 后端将请求分发到具体的服务器进行处理。
- 服务器处理请求并返回结果,通过后端和前端返回给客户端。
二、 haproxy 安装
haproxy 管理手册:https://docs.haproxy.org/dev/management.html#2
操作系统选择Centos7.9.
1. 使用yum源安装
由于默认源自带的软件包版本很低,所以这里就跳过。
[root@haproxy ~]# yum info haproxy | grep Version
Version : 1.5.18
2. 使用源码安装
下载源码:
-
下载安装依赖包
[root@haproxy ~]# yum install -y make gcc pcre pcre-devel bzip2-devel openssl openssl-devel
下载lua源码,编译安装。
[root@haproxy ~]# curl -L -R -O https://www.lua.org/ftp/lua-5.4.8.tar.gz [root@haproxy ~]# tar zxf lua-5.4.8.tar.gz [root@haproxy ~]# cd lua-5.4.8 [root@haproxy lua-5.4.8]# make all test [root@haproxy lua-5.4.8]# ./src/lua -v
Lua 是一种轻量级、嵌入式脚本语言,haproxy为什么需要
lua
,官网解释:https://www.arpalert.org/haproxy-lua.html。 centos7.9默认的lua
版本为Lua 5.1.4
,HAProxy 1.6
开始 就需要Lua 5.3
,我们的haproxy版本是最新的所以Lua
也使用最新的。 -
下载haproxy源码,编译安装。
[root@haproxy ~]# curl -LRO https://www.haproxy.org/download/3.2/src/haproxy-3.2.0.tar.gz [root@haproxy ~]# tar -zxvf haproxy-3.2.0.tar.gz [root@haproxy ~]# cd haproxy-3.2.0 [root@haproxy src]# make TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_LUA=1 LUA_INC=/root/lua-5.4.8/src/ LUA_LIB=/root/lua-5.4.8/src/ [root@haproxy haproxy-3.2.0]# make install PREFIX=/usr/local/haproxy # 查看版本 [root@haproxy haproxy-3.2.0]# /usr/local/haproxy/sbin/haproxy -v HAProxy version 3.2.0-e134140 2025/05/28 - https://haproxy.org/ # 查看构建细节 [root@haproxy haproxy-3.2.0]# /usr/local/haproxy/sbin/haproxy -vv HAProxy version 3.2.0-e134140 2025/05/28 - https://haproxy.org/ Status: long-term supported branch - will stop receiving fixes around Q2 2030. Known bugs: http://www.haproxy.org/bugs/bugs-3.2.0.html Running on: Linux 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 Build options : TARGET = linux-glibc CC = cc CFLAGS = -O2 -g -fwrapv OPTIONS = USE_OPENSSL=1 USE_LUA=1 USE_ZLIB=1 USE_PCRE=1 DEBUG = ... ...
-
TARGET=linux-glibc:
指定目标操作系统和内核版本, haproxy-2.x 及以下版本安装时:TARGET=linux2628 .(linux2628 表示目标是 Linux 系统,内核版本为 2.6.28 或更高版本。这个参数确保 HAProxy 在编译时针对特定的内核版本进行优化,haproxy-3.x 版本安装时: TARGET=linux-glibc。 -
USE_OPENSSL=1:
启用对 OpenSSL 的支持。这使得 HAProxy 能够处理 SSL/TLS 加密的流量,如果你需要 HAProxy 支持 HTTPS 或其他加密协议,这个选项是必需的。 -
USE_PCRE=1:
启用对 PCRE(Perl Compatible Regular Expressions)库的支持。PCRE 库用于支持正则表达式, 这对于 HAProxy 的一些高级功能(如基于 URL 的路由规则)是必要的。 -
USE_SYSTEMD=1:
启用对 systemd 的支持。systemd 是一个系统和服务管理器,用于启动、停止和管理服务,启用这个选项可以让 HAProxy 与 systemd 集成,从而更方便地管理 HAProxy 服务。 -
USE_ZLIB=1:
使用zlib压缩更多构建参数参考:https://github.com/haproxy/haproxy/blob/master/INSTALL
-
-
启动haproxy
3.1. 使用二进制文件启动
编译时选择安装在/usr/local/haproxy是没有配置文件的,可以从源码包中拷贝一份到/usr/local/haproxy目录下启动[root@haproxy ~]# grep -Ev '^#|^$' /root/haproxy-3.2.0/examples/basic-config-edge.cfg > /usr/local/haproxy/haproxy.cfg
创建haproxy用户和组
[root@haproxy ~]# useradd -r -M -s /sbin/nologin haproxy
将配置中的ssl配置注释掉
#bind :443 name secure ssl crt pub1.pem #ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 #ssl-default-bind-options prefer-client-ciphers no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets
启动haproxy
[root@haproxy ~]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg [root@haproxy ~]# ps -ef|grep haproxy haproxy 1634 1 3 00:47 ? 00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg root 1673 31153 0 00:47 pts/3 00:00:00 grep --color=auto haproxy
3.2 配置haproxy为init服务(与下面配置systemd服务二选一)
在examples目录里面有一个haproxy.init
脚本,将其复制到/etc/init.d/ 重名了为haproxy
并赋予执行权限[/root/haproxy-3.2.0/examples ~] cp haproxy.init /etc/init.d/haproxy [/root/haproxy-3.2.0/examples ~] chmod 755 /etc/init.d/haproxy
阅读脚本发现,脚本读取的配置文件路径在
/etc/haproxy/haproxy.cfg
,二进制文件路径在/usr/sbin/haproxy
,pid文件在/var/run/haproxy.pid
,提前创建配置文件目录,并把配置文件和二进制文件拷贝过去。[root@haproxy ~]# mkdir /etc/haproxy [root@haproxy ~]# cp /usr/local/haproxy/haproxy.cfg /etc/haproxy/ [root@haproxy ~]# cp /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy
到了这里还不行启动是会报错如下:
[root@haproxy ~]# systemctl daemon-reload [root@haproxy ~]# systemctl start haproxy Job for haproxy.service failed because the control process exited with error code. See "systemctl status haproxy.service" and "journalctl -xe" for details. [root@haproxy ~]# systemctl status haproxy.service ● haproxy.service - SYSV: HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments. Loaded: loaded (/etc/rc.d/init.d/haproxy; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2025-06-18 10:36:17 EDT; 6s ago Docs: man:systemd-sysv-generator(8) Process: 20170 ExecStart=/etc/rc.d/init.d/haproxy start (code=exited, status=1/FAILURE) Main PID: 19236 (code=killed, signal=TERM) Jun 18 10:36:17 haproxy haproxy[20170]: Starting haproxy: [NOTICE] (20179) : haproxy version is 3.2.0-e134140 Jun 18 10:36:17 haproxy haproxy[20170]: [NOTICE] (20179) : path to executable is /usr/sbin/haproxy Jun 18 10:36:17 haproxy haproxy[20170]: [WARNING] (20179) : config : parsing [/etc/haproxy/haproxy.cfg:13] : 'pidfile' already specified. Continuing. Jun 18 10:36:17 haproxy haproxy[20170]: [ALERT] (20181) : Some warnings were found and 'zero-warning' is set. Aborting. Jun 18 10:36:17 haproxy haproxy[20170]: [ALERT] (20179) : Process 20181 exited with code 1 (Exit) Jun 18 10:36:17 haproxy haproxy[20170]: [FAILED] Jun 18 10:36:17 haproxy systemd[1]: haproxy.service: control process exited, code=exited status=1 Jun 18 10:36:17 haproxy systemd[1]: Failed to start SYSV: HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments.. Jun 18 10:36:17 haproxy systemd[1]: Unit haproxy.service entered failed state. Jun 18 10:36:17 haproxy systemd[1]: haproxy.service failed.
关键报错在:
config : parsing [/etc/haproxy/haproxy.cfg:13] : 'pidfile' already specified. Continuing.
意思是在/etc/haproxy/haproxy.cfg配置文件中已经指定了pid文件位置,但是我们的init脚本又指定了一下所以冲突了。我们把/etc/haproxy/haproxy.cfg
配置文件中的pid配置指令
删除或者注释即可。[root@haproxy ~]# cat /etc/haproxy/haproxy.cfg | grep pid #pidfile /var/run/haproxy-svc1.pid
重新启动haproxy
systemctl daemon-reload service haproxy start [root@haproxy ~]# ps -ef|grep haproxy haproxy 22057 1 1 10:41 ? 00:00:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid root 22096 17472 0 10:41 pts/0 00:00:00 grep --color=auto haproxy
Centos7.9 init服务已经链接到了systemd系统管理,所以也可以使用systemd来管理haproxy进程。
[root@haproxy ~]# ll /usr/sbin/init
lrwxrwxrwx. 1 root root 22 Jun 16 22:46 /usr/sbin/init -> …/lib/systemd/systemdsystemctl stop haproxy systemctl restart haproxy systemctl enable haproxy
3.3 使用纯systemd方式来管理haproxy服务。(与上面配置init服务二选一)
不使用init脚本的方式管理进程,就需要编写haproxy.service
文件,haproxy.service
文件可以在旧的haproxy的rpm包中获取。- 下载haproxy rpm包到/root目录下:
[root@haproxy ~]# yum -y install yum-utils && yumdownloader haproxy --destdir=/root
- 解压:
[root@haproxy ~]# rpm2cpio haproxy-1.5.18-9.el7_9.1.x86_64.rpm > haproxy.cpio && cpio -idmv < haproxy.cpio
haproxy.service
文件在:/root/usr/lib/systemd/system/haproxy.service
下面
阅读了一下
haproxy.service
文件,发现二进制启动文件是/usr/sbin/haproxy-systemd-wrapper
,需要修改为/usr/sbin/haproxy
,前提是已经将haproxy
复制到了/usr/sbin/haproxy
中且配置文件复制到/etc/haproxy/haproxy.cfg
。haproxy-systemd-wrapper
是一个用于在 Systemd 环境中启动 HAProxy 的脚本,确保 HAProxy 与 Systemd 集成,实现对 HAProxy 服务的管理。它的作用是解析 HAProxy 的配置文件并启动 HAProxy 进程,可以在haproxy
的启动参数中添加-Ws参数
参数来与Systemd
集成。cp /usr/local/haproxy/sbin/haproxy /usr/sbin/ mkdir /etc/haproxy/ cp /usr/local/haproxy/haproxy.cfg /etc/haproxy/
将环境变量文件
/root/etc/sysconfig/haproxy
复制到/etc/sysconfig/haproxy
cp /root/etc/sysconfig/haproxy /etc/sysconfig/haproxy
配置
haproxy.service
文件haproxy.service
和/etc/haproxy/haproxy.cfg
配置文件中都指定了pid 文件位置,所以只能留一个,把/etc/haproxy/haproxy.cfg
配置文件中的pid参数注释即可。启动参数添加-Ws
与systemd系统集成,不添加无法启动tee /etc/systemd/system/haproxy.service << EOF [Unit] Description=HAProxy Load Balancer After=syslog.target network.target [Service] EnvironmentFile=/etc/sysconfig/haproxy ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid \$OPTIONS ExecReload=/bin/kill -USR2 \$MAINPID KillMode=mixed [Install] WantedBy=multi-user.target EOF
EnvironmentFile=/etc/sysconfig/haproxy
: 环境变量配置文件,$OPTIONS
就是调用了文件中的变量。
启动haproxy
如下进程可以看出haproxy有两个进程,这是因为从HAProxy 2.0版本开始,主从模式成为推荐的进程管理方式,并且与systemd的结合更加紧密,-Ws 参数在这一版本及之后的版本中被广泛使用,以支持无缝重载和systemd的通知机制
systemctl daemon-reload systemctl start haproxy systemctl enable haproxy systemctl status haproxy ● haproxy.service - HAProxy Load Balancer Loaded: loaded (/etc/systemd/system/haproxy.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2025-06-18 22:00:25 EDT; 1min 49s ago Main PID: 10058 (haproxy) CGroup: /system.slice/haproxy.service ├─10058 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid └─10060 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid Jun 18 22:00:26 localhost.localdomain haproxy[10058]: [WARNING] (10060) : Server app1/srv1 is DOWN, reason: Layer4 timeout, check duration: 1002ms. 3 active and ...in queue. Jun 18 22:00:26 localhost.localdomain haproxy[10058]: <129>Jun 18 22:00:26 haproxy[10060]: Server app1/srv1 is DOWN, reason: Layer4 timeout, check duration: 1002m...in queue. Jun 18 22:00:26 localhost.localdomain haproxy[10058]: [WARNING] (10060) : Server app1/srv2 is DOWN, reason: Layer4 timeout, check duration: 1002ms. 2 active and ...in queue. Jun 18 22:00:26 localhost.localdomain haproxy[10058]: <129>Jun 18 22:00:26 haproxy[10060]: Server app1/srv2 is DOWN, reason: Layer4 timeout, check duration: 1002m...in queue. Jun 18 22:00:26 localhost.localdomain haproxy[10058]: [WARNING] (10060) : Server app1/srv3 is DOWN, reason: Layer4 timeout, check duration: 1002ms. 1 active and ...in queue. Jun 18 22:00:26 localhost.localdomain haproxy[10058]: <129>Jun 18 22:00:26 haproxy[10060]: Server app1/srv3 is DOWN, reason: Layer4 timeout, check duration: 1002m...in queue. Jun 18 22:00:27 localhost.localdomain haproxy[10058]: [WARNING] (10060) : Server app1/srv4 is DOWN, reason: Layer4 timeout, check duration: 1002ms. 0 active and ...in queue. Jun 18 22:00:27 localhost.localdomain haproxy[10058]: <129>Jun 18 22:00:27 haproxy[10060]: Server app1/srv4 is DOWN, reason: Layer4 timeout, check duration: 1002m...in queue. Jun 18 22:00:27 localhost.localdomain haproxy[10058]: [ALERT] (10060) : backend 'app1' has no server available! Jun 18 22:00:27 localhost.localdomain haproxy[10058]: <128>Jun 18 22:00:27 haproxy[10060]: backend app1 has no server available! Hint: Some lines were ellipsized, use -l to show in full.
- 下载haproxy rpm包到/root目录下:
-
配置haproxy man帮助手册
编译安装后的haproxy会生成3个目录如下:[root@localhost haproxy]# pwd /usr/local/haproxy [root@localhost haproxy]# ls doc haproxy.cfg sbin share
doc :
里面都是文档sbin :
二进制文件目录share:
man帮助手册
将
/usr/local/haproxy/share/man/man1/haproxy.1
复制到/usr/share/man/man1
cp /usr/local/haproxy/share/man/man1/haproxy.1 /usr/share/man/man1
使用
man haproxy
查看
3. haproxy日志配置
默认情况下, HAProxy是没有配置日志的,在 centos7.9 下默认管理日志的是
rsyslog
, 可以实现UDP日志的接收,将日志写入文件。
在haproxy
配置文件的global
模块下面写入
如果配置文件中有
log stderr local0 info
这种向控制台输出日志的可以删除,配置下面的将日志发生到rsyslog。
local
局部设施 有0-7
对日志分类以便记录不通的日志。
local0
:用于记录某个特定自定义应用程序的日志
local1
:用于记录另一个自定义服务的日志
local2
:用于记录某个重要业务系统的日志
local3
:用于记录某个辅助工具的日志
local4
:可以分配给某个测试环境中的应用程序使用,用于区分测试日志和生产日志。
local5
:用于记录特定类型的操作日志,比如安全相关的审计操作
local6
:用于记录某个特定模块的日志,如 Web 应用的用户认证模块
local7
:用于记录某个特殊项目或临时任务相关的日志,方便项目结束后单独整理和存档。
-----------------------------------------------------------------------------------------------------------------
info
是日志级别,总共有8个
debug
(调试) :最详细的信息,用于开发和故障排查,不建议在生产环境中启用,因为会产生大量日志数据。
info
(信息) :一般信息,表示正常的系统运行状态或常规事件,用于记录系统或应用程序的正常操作信息,如服务启动、停止等。
notice
(通知) :比 info 稍重要的信息,表示系统运行正常但较为重要的事件,如用户登录、配置更改等。
warning
(警告):表示可能存在潜在问题,但系统仍能正常运行,如资源使用接近阈值、配置项不推荐等。
err
(错误) :表示系统或应用程序遇到错误,可能影响正常运行,如服务启动失败、请求处理错误等。
crit
(临界) :表示严重的错误,可能需要立即关注
alert
(警报) :表示需要立即采取行动的严重问题,如系统即将崩溃、数据丢失风险等。
emerg
(紧急) :最严重的级别,表示系统不可用或出现重大问题,通常会导致系统崩溃或无法正常工作,需要立即处理。
cat /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2 info
Rsyslog 配置
由于 haproxy 的日志是用 udp传输的, 所以要启用 rsyslog的 udp监听。新建 /etc/rsyslog.d/haproxy.conf
并配置(也可以将配置写入 /etc/rsyslog
文件中)
tee /etc/rsyslog.d/haproxy.conf << EOF
\$ModLoad imudp
\$UDPServerRun 514
local2.* /var/log/haproxy.log
EOF
local2 :
基础设施服务,如:Nginx、Apache、数据库$ModLoad imudp
:导入udp模块,支持udp协议$UDPServerRun 514
:准许 514端口接收使用 UDP和 TCP协议转发过来的日志(rsyslog默认 514端口监听UDP)local2.* /var/log/haproxy.log:
:将 local2 设施接收到的所有级别的日志消息,都记录到 /var/log/haproxy.log 文件中。
重启haproxy和rsyslog服务
systemctl restart haproxy.service
systemctl restart rsyslog.service
查看日志
[root@localhost ~]# tail -f /var/log/haproxy.log
Jun 18 23:36:32 localhost haproxy[12468]: Server app1/srv1 is DOWN, reason: Layer4 timeout, check duration: 1001ms. 3 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
Jun 18 23:36:33 localhost haproxy[12468]: Server app1/srv2 is DOWN, reason: Layer4 timeout, check duration: 1001ms. 2 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
Jun 18 23:36:33 localhost haproxy[12468]: Server app1/srv3 is DOWN, reason: Layer4 timeout, check duration: 1002ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
Jun 18 23:36:33 localhost haproxy[12468]: Server app1/srv4 is DOWN, reason: Layer4 timeout, check duration: 1002ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
Jun 18 23:36:33 localhost haproxy[12468]: backend app1 has no server available!
4. haproxy 参数了解
使用方法:Usage : haproxy [-f <cfgfile|cfgdir>]* [ -vdVD ] [ -n ] [ -N ]
[ -p <pidfile> ] [ -m <max megs> ] [ -C <dir> ] [-- <cfgfile>*]
-v 显示版本;-vv 则会显示已知的构建选项
-d 进入调试模式;-db 仅会关闭后台模式。
-dM[<byte>,help,...] 调试内存(默认设置:用 <字节>/0x50 进行污染)
-dt 在标准错误输出中启用跟踪记录
-V 进入详细模式(关闭安静模式)
-D “goes daemon”;“-C”选项会在加载文件之前将路径更改为<目录>。
-W 主从模式。
-Ws 支持 systemd 通知的主从模式。
-q 静音模式:不显示消息
-c 检查模式:仅检查配置文件并退出
-cc 检查条件:评估一个条件并退出
-4 强制力行器仅考虑 IPv4 响应
-n 设置最大连接总数(使用 ulimit -n 命令)
-m 限制了可用内存的容量(单位:兆字节)
-N 设置每个代理的默认最大连接数(默认值为 0)
-L 设置本地对等节点名称(默认值为主机名)
-p 将所有子进程的 PID 写入此文件中
-dC[[key],line] 显示配置文件,如果存在某个键,则该文件将被匿名化处理。
-de 即使 epoll() 函数可用,也禁止其使用。
-dp 即使有该函数可用,也禁止使用 poll() 函数。
-dS 禁用拼接功能(在旧版本内核中已失效)
-dG 禁用了 getaddrinfo() 函数的使用
-dR 禁用了 SO_REUSEPORT 的使用功能
-dL 在配置检查之后,会加载损坏的文件。
-dc 列出所选和被移除的 CPU 列表
-dK{class[,...]} 删除已注册的关键字(使用“帮助”可获取列表)
-dr 忽略服务器地址解析失败的情况
-dV 在服务器端禁用 SSL 验证
-dW 如果出现任何警告信息,则会失败
-dD 诊断模式:对可疑的配置语句发出警告
-dF 禁用快进功能
-dI 启用不安全的进程分叉功能
-dZ 禁用零拷贝转发
-sf/-st [pid ]* 终止/结束旧的进程标识符。
-x <unix_socket> 从一个 Unix 信号量中获取监听套接字
-S <bind>[,<bind options>...] 新主控台命令行界面