haproxy 代理/负载均衡器学习一 安装

一、 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. 使用源码安装

下载源码:

  1. 下载安装依赖包

    [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 也使用最新的。

  2. 下载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

  3. 启动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/systemd

     systemctl stop haproxy
     systemctl restart  haproxy
     systemctl enable  haproxy
    

    3.3 使用纯systemd方式来管理haproxy服务。(与上面配置init服务二选一)
    不使用init脚本的方式管理进程,就需要编写 haproxy.service 文件,haproxy.service文件可以在旧的haproxy的rpm包中获取。

    1. 下载haproxy rpm包到/root目录下:[root@haproxy ~]# yum -y install yum-utils && yumdownloader haproxy --destdir=/root
    2. 解压:[root@haproxy ~]# rpm2cpio haproxy-1.5.18-9.el7_9.1.x86_64.rpm > haproxy.cpio && cpio -idmv < haproxy.cpio
    3. 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.
    
  4. 配置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>...] 新主控台命令行界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值