<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>HAProxy 3.4.4 中文文档 on PIG.CENTER</title><link>https://pig.center/zh/docs/haproxy/</link><description>Recent content in HAProxy 3.4.4 中文文档 on PIG.CENTER</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 08 Sep 2026 21:29:01 +0800</lastBuildDate><atom:link href="https://pig.center/zh/docs/haproxy/index.xml" rel="self" type="application/rss+xml"/><item><title>入门指南</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description/></item><item><title>负载均衡基础</title><link>https://pig.center/zh/docs/haproxy/load-balancing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/load-balancing/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;本文旨在向所有尚未了解 HAProxy 的用户以及希望重新认识该软件（尤其是熟悉旧版本的用户）提供入门引导。本文主要目的在于为用户提供充分信息，以判断 HAProxy 是否符合其需求。高级用户可能在此发现某些解决方案的片段，仅因此前未意识到某项新功能的存在。此外，本文还提供了部分容量规划信息，说明了产品的生命周期，并对部分功能重叠的产品进行了对比。&lt;/p&gt;</description></item><item><title>HAProxy 是什么及其实现原理</title><link>https://pig.center/zh/docs/haproxy/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/architecture/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 用于指代产品，而 HAProxy 用于指代可执行程序、软件包或进程。然而，两者常被互换使用，且均发音为 H-A-Proxy。早期，“HAProxy”曾代表“高可用性代理”，名称以两个独立单词书写，但如今其含义已仅限于“HAProxy”。&lt;/p&gt;</description></item><item><title>基本功能</title><link>https://pig.center/zh/docs/haproxy/basic-features/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/basic-features/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;本段将列举 HAProxy 实现的若干功能，其中部分功能是现代负载均衡器普遍具备的特性，另一些则是 HAProxy 架构带来的直接优势。更高级的功能将在下一节中详细说明。&lt;/p&gt;</description></item><item><title>标准功能</title><link>https://pig.center/zh/docs/haproxy/standard-features/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/standard-features/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;在本段中，列举了一些在 HAProxy 中非常常见但未必存在于其他负载均衡器上的功能。&lt;/p&gt;&#10;&lt;h2 id="section-3-4-1"&gt;3.4.1. 标准功能：采样与信息转换&#10;&lt;/h2&gt;&#10;&lt;p&gt;HAProxy 支持使用多种“样本提取函数”进行信息采样。其原理是提取称为样本的信息片段，以供即时使用。该机制用于实现会话粘性、构建条件判断、生成日志信息或丰富 HTTP 头。&lt;/p&gt;</description></item><item><title>高级功能</title><link>https://pig.center/zh/docs/haproxy/advanced-features/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/advanced-features/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;h2 id="section-3-5-1"&gt;3.5.1. 高级功能：系统管理&#10;&lt;/h2&gt;&#10;&lt;p&gt;HAProxy 旨在在常规生产环境中保持极高的稳定性与安全性。它以单个可执行文件的形式提供，无需任何安装过程。多个版本可轻松共存，因此建议按重要性顺序逐步升级实例，而非一次性全部迁移。配置文件易于版本化。配置检查可在离线状态下完成，无需重启可能失败的服务。在配置检查过程中，可检测到多种高级错误（例如规则相互隐藏，或无法生效的会话粘性），并提供详细的警告信息与配置建议以修复问题。配置文件的向后兼容性极为持久，版本 1.5 仍完全支持 13 年前为版本 1.1 编写的配置，而 1.6 仅移除了几乎不再使用、已过时的关键词，这些功能可通过其他方式实现。配置与软件升级机制平滑且无中断，允许旧版与新版进程在系统中共存，各自处理自身的连接。启动时会报告系统状态、构建选项及库兼容性信息。&lt;/p&gt;</description></item><item><title>性能与容量规划</title><link>https://pig.center/zh/docs/haproxy/sizing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/sizing/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;典型 CPU 使用率数据显示，在 TCP 或 HTTP 关闭模式下，HAProxy 占用约 15% 的处理时间，内核占用约 85%；在 HTTP 持久连接模式下，HAProxy 占用约 30%，内核占用约 70%。这表明操作系统及其调优对整体性能有显著影响。&lt;/p&gt;</description></item><item><title>发布、软件包与升级</title><link>https://pig.center/zh/docs/haproxy/releases-and-upgrades/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/releases-and-upgrades/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 是一个采用 GPLv2 许可证的开源项目，这意味着只要在请求时提供源代码，任何人都可以自由分发该软件，尤其是当进行了任何修改时。&lt;/p&gt;&#10;&lt;p&gt;HAProxy 以名为“master”或“mainline”的主开发分支持续演进，当代码被认为稳定后，便会从该分支衍生出新的分支。许多网站自愿在生产环境中运行开发分支，或为参与项目，或因需要前沿功能，其反馈对修复缺陷、评估所开发版本的整体质量与稳定性具有极高价值。&lt;/p&gt;</description></item><item><title>相关产品与替代方案</title><link>https://pig.center/zh/docs/haproxy/ecosystem/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/ecosystem/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 与以下列出的某些产品集成良好，因此尽管这些产品与 HAProxy 无直接关联，仍在此提及。&lt;/p&gt;&#10;&lt;h2 id="section-4-1"&gt;4.1. Apache HTTP 服务器&#10;&lt;/h2&gt;&#10;&lt;p&gt;Apache 是事实上的标准 HTTP 服务器。它是一个功能完整且模块化的项目，支持静态文件服务和动态内容处理。Apache 可以作为某些应用服务器的前端。它甚至可以代理请求并缓存响应。在所有这些使用场景中，通常需要一个前端负载均衡器。Apache 可以在多种模式下运行，其中某些模式的开销较大。某些模块仍需依赖开销较大的预派生模型，这将导致 Apache 在连接数较高时难以良好扩展。在此情况下，HAProxy 可通过将每台服务器的连接数限制强制设定为安全值，显著提升服务器性能，并有效保护服务器资源，使这些资源能更高效地被应用程序利用。&lt;/p&gt;</description></item><item><title>文档与社区</title><link>https://pig.center/zh/docs/haproxy/resources/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/resources/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;h2 id="section-1"&gt;1. 可用文档&#10;&lt;/h2&gt;&#10;&lt;p&gt;HAProxy 的完整文档由以下文件组成。请先查阅与问题相关的文档，以节省时间并获得最准确的答案。如果这些文档已经给出答案，请勿再向邮件列表重复提问。&lt;/p&gt;</description></item><item><title>配置手册</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description/></item><item><title>1. 快速 HTTP 提示</title><link>https://pig.center/zh/docs/haproxy/http-fundamentals/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/http-fundamentals/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;本文涵盖上述指定版本中实现的配置语言。&#10;本文不提供任何提示、示例或建议。&#10;如需此类文档，请参阅参考手册或架构手册。&#10;编号章节在 HAProxy 扁平侧边栏中按顺序排列，支持直接导航。&lt;/p&gt;</description></item><item><title>2. 配置 HAProxy</title><link>https://pig.center/zh/docs/haproxy/configuration-basics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/configuration-basics/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;h2 id="section-2-1"&gt;2.1. 配置文件格式&#10;&lt;/h2&gt;&#10;&lt;p&gt;HAProxy 的配置过程涉及三个主要参数来源：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;命令行参数，始终具有最高优先级&lt;/li&gt;&#10;&lt;li&gt;配置文件，其格式在此处描述&lt;/li&gt;&#10;&lt;li&gt;运行进程的环境，若显式引用了某些环境变量&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;配置文件采用一种相对简单的分层格式，遵循若干基本规则：&lt;/p&gt;</description></item><item><title>3. 全局段</title><link>https://pig.center/zh/docs/haproxy/global/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/global/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;“global” 段中的参数为进程级配置，通常与操作系统相关。这些参数通常只需一次性设置，一旦配置正确便无需再修改。部分参数在命令行中也有对应选项。&lt;/p&gt;</description></item><item><title>4. 代理</title><link>https://pig.center/zh/docs/haproxy/proxies/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/proxies/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;代理配置可位于一组段中：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;defaults [&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;] [ from &lt;code&gt;&amp;lt;defaults_name&amp;gt;&lt;/code&gt; ]&lt;/li&gt;&#10;&lt;li&gt;frontend &lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt; [ from &lt;code&gt;&amp;lt;defaults_name&amp;gt;&lt;/code&gt; ]&lt;/li&gt;&#10;&lt;li&gt;backend &lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt; [ from &lt;code&gt;&amp;lt;defaults_name&amp;gt;&lt;/code&gt; ]&lt;/li&gt;&#10;&lt;li&gt;listen &lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt; [ from &lt;code&gt;&amp;lt;defaults_name&amp;gt;&lt;/code&gt; ]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;前端段描述了一组用于接收客户端连接的监听套接字。&lt;/p&gt;&#10;&lt;p&gt;后端段描述了一组代理将连接以转发传入连接的服务器。&lt;/p&gt;</description></item><item><title>5. 绑定与服务器选项</title><link>https://pig.center/zh/docs/haproxy/bind-and-server-options/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/bind-and-server-options/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;“bind”、“server” 和 “default-server” 关键字支持多种设置，具体取决于构建选项以及 HAProxy 所基于的系统。这些设置通常由一个单词组成，有时后接一个值，与 “bind” 或 “server” 语句位于同一行。所有这些选项均在本节中描述。&lt;/p&gt;</description></item><item><title>6. 缓存</title><link>https://pig.center/zh/docs/haproxy/cache/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/cache/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 提供一个缓存，专为小型对象（如 favicon、CSS 等）的缓存而设计。&#10;这是一个极简且低维护成本的缓存，运行于内存中。&lt;/p&gt;&#10;&lt;p&gt;缓存基于所有线程共享的内存区域，并划分为 1kB 的块。&lt;/p&gt;</description></item><item><title>7. ACL 与样本提取</title><link>https://pig.center/zh/docs/haproxy/acls-and-samples/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/acls-and-samples/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 可从请求或响应流、客户端或服务器信息、表格、环境信息等来源提取数据。提取此类数据的动作称为获取样本。获取后，这些样本可用于多种用途，例如作为粘性表的键，但最常见的用法是将其与称为模式的预定义常量数据进行匹配。&lt;/p&gt;</description></item><item><title>8. 日志记录</title><link>https://pig.center/zh/docs/haproxy/configuration-logging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/configuration-logging/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;本文的强项之一无疑是其精确的日志记录。它可能为这类产品提供了最详尽的信息级别，这对排查复杂环境中的问题至关重要。日志中提供的标准信息包括客户端端口、TCP/HTTP 状态定时器、流在终止时的精确状态以及精确的终止原因，关于将流量导向服务器的决策信息，当然还包括捕获任意头字段的能力。&lt;/p&gt;</description></item><item><title>9. 支持的过滤器</title><link>https://pig.center/zh/docs/haproxy/filters/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/filters/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;以下是官方支持的过滤器及其所接受的参数列表。根据编译选项的不同，部分过滤器可能不可用。可用过滤器的列表将在 HAProxy -vv. 中报告。&lt;/p&gt;&#10;&lt;p&gt;另请参见：&amp;ldquo;过滤器&amp;rdquo;&lt;/p&gt;</description></item><item><title>10. FastCGI 应用程序</title><link>https://pig.center/zh/docs/haproxy/fastcgi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/fastcgi/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 可以向 Responder FastCGI 应用发送 HTTP 请求。此功能自 HAProxy 2.1 版本起引入。为此，必须将服务器配置为使用 FastCGI 协议（在服务器行中使用关键字 &amp;ldquo;proto fcgi&amp;rdquo;），且后端管理这些服务器时，必须配置并使用一个 FastCGI 应用（在代理段中使用关键字 &amp;ldquo;use-fcgi-app&amp;rdquo;）。可以定义多个 FastCGI 应用，但每个后端在同一时间只能使用其中一个。&lt;/p&gt;</description></item><item><title>11. 粘性表与对等节点</title><link>https://pig.center/zh/docs/haproxy/stick-tables-and-peers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/stick-tables-and-peers/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;在 HAProxy 中，stick-table 是一种机制，允许将一定数量的信息和指标与特定类型的键关联，并在最后一次更新后持续一定时间。这可视为表格中的一行多列数据，其中行号由键值决定，各列代表不同的衡量标准。&lt;/p&gt;</description></item><item><title>12. 其他配置段</title><link>https://pig.center/zh/docs/haproxy/other-sections/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/other-sections/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;以下所述段落使用频率较低，通常仅支持少量参数。它们之间不存在隐式关联。所有段均通过单一关键字启动。在 &amp;ldquo;global&amp;rdquo; 段之前禁止出现任何此类段。部分段的支持可能受构建选项限制（例如与 SSL 相关的任何功能）。&lt;/p&gt;</description></item><item><title>管理指南</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description/></item><item><title>1. 先决条件</title><link>https://pig.center/zh/docs/haproxy/prerequisites/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/prerequisites/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;本文介绍如何启动、停止、管理 HAProxy 及排查其故障，也会说明一些已知限制和应避免的陷阱。本文不涉及 HAProxy 的配置方法；相关内容请参阅 &lt;a href="https://pig.center/zh/docs/haproxy/http-fundamentals/"&gt;&lt;code&gt;configuration.txt&lt;/code&gt;&lt;/a&gt;&#10;。&lt;/p&gt;&#10;&lt;p&gt;本文假定读者具备类 Unix 操作系统的管理能力，日常使用 shell，并熟悉 strace、tcpdump 等故障排查工具。&lt;/p&gt;</description></item><item><title>2. HAProxy 架构</title><link>https://pig.center/zh/docs/haproxy/management-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/management-architecture/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 是一个多线程、事件驱动、非阻塞的守护进程。它使用事件多路复用机制调度所有活动，而不依赖系统在多项活动之间切换调度。大多数情况下，HAProxy 只运行一个进程，因此在系统上执行 &amp;ldquo;ps aux&amp;rdquo; 时通常只会看到一个 &amp;ldquo;haproxy&amp;rdquo; 进程；平滑重载期间是例外，此时旧进程会与新进程并行完成剩余工作。因此，使用 strace 始终可以轻松跟踪其活动。为利用多个处理器，HAProxy 默认会为每个允许使用的处理器启动一个工作线程。除非另有明确配置，传入流量会均匀分配给所有线程，每个线程运行相同的事件循环。HAProxy 将线程间依赖严格控制在最低水平，以实现近乎线性的扩展能力。这也意味着每条连接只由一个线程处理。因此，要充分利用全部处理能力，连接数至少应与线程数相当；实际环境几乎总能满足这一条件。&lt;/p&gt;</description></item><item><title>3. 启动 HAProxy</title><link>https://pig.center/zh/docs/haproxy/starting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/starting/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 通过在命令行中传入若干参数来调用 &amp;ldquo;haproxy&amp;rdquo; 程序启动。实际语法如下：&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-c293d7f4-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="shell" data-td-line-count="1"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-c293d7f4-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ haproxy &lt;span class="o"&gt;[&lt;/span&gt;&amp;lt;options&amp;gt;&lt;span class="o"&gt;]&lt;/span&gt;*&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;其中 [&lt;code&gt;&amp;lt;options&amp;gt;&lt;/code&gt;]* 为任意数量的选项。每个选项均以 &amp;lsquo;-&amp;rsquo; 开头，后接一个或多个字母，可选地跟随一个或多个额外参数。若未指定任何选项，HAProxy 将显示帮助页面，并提示支持的选项。可用选项可能因操作系统略有差异。其中相当一部分选项与 &amp;ldquo;global&amp;rdquo; 段中的等效选项重叠。在此情况下，命令行选项始终优先于配置文件，以便可通过命令行快速强制设置，而无需修改配置文件。当前选项列表如下：&lt;/p&gt;</description></item><item><title>4. 停止与重启 HAProxy</title><link>https://pig.center/zh/docs/haproxy/stopping-and-restarting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/stopping-and-restarting/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 支持优雅停止和强制停止。强制停止操作简单：当向 HAProxy 进程发送 SIGTERM 信号时，进程立即退出，所有已建立的连接将被关闭。优雅停止通过向 HAProxy 进程发送 SIGUSR1 信号触发，其操作仅包括解除对监听端口的绑定，但会继续处理现有连接，直至所有连接关闭。当最后一个连接关闭后，进程退出。&lt;/p&gt;</description></item><item><title>5. 文件描述符限制</title><link>https://pig.center/zh/docs/haproxy/file-descriptors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/file-descriptors/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;为确保所有传入连接均能成功处理，HAProxy 在加载时会计算进程生命周期内所需的文件描述符总数。常规 Unix 进程默认被授予 1024 个文件描述符，特权进程可自行提升该限制。这是以 root 身份启动 HAProxy 并由其自行调整限制的原因之一。默认的 1024 个文件描述符大致可支持约 500 个并发连接的处理。该计算基于全局 maxconn 参数，该参数限制每个进程的总连接数，同时考虑监听器数量、启用健康检查的服务器数量、代理检查、对等节点、日志记录器以及可能的其他技术需求。对该数值的粗略估算方法为：将 maxconn 值翻倍，并额外增加数十个，即可得到所需的文件描述符近似数量。&lt;/p&gt;</description></item><item><title>6. 内存管理</title><link>https://pig.center/zh/docs/haproxy/memory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/memory/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 采用简单、快速的池式内存管理。由于 HAProxy 只使用少量不同的对象类型，从已经包含适当大小对象的内存池中获取新对象，远比针对每种大小分别调用 malloc() 高效。内存池按栈或 LIFO 方式组织，新分配的对象会优先取自刚刚释放、仍在 CPU 缓存中的对象。大小相近的内存池会合并，以减少内存碎片。&lt;/p&gt;</description></item><item><title>7. CPU 使用率</title><link>https://pig.center/zh/docs/haproxy/cpu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/cpu/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 通常大部分时间运行在系统空间，仅小部分时间运行在用户空间。经过精细调优的 3.5 GHz CPU 在单核满载 100% 时，每秒可维持约 80000 次端到端连接的建立与关闭。当单核达到饱和时，典型数值为：&lt;/p&gt;</description></item><item><title>8. 日志记录</title><link>https://pig.center/zh/docs/haproxy/management-logging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/management-logging/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;对于日志记录，HAProxy 始终依赖 syslog 服务器，因为它不执行任何文件系统访问。标准用法是通过 UDP 将日志发送至日志服务器（默认端口为 514）。通常情况下，该配置会指向 127.0.0.1，即本地 syslog 守护进程运行的位置，但也常通过网络将日志发送至集中式服务器。在主动-主动场景中，集中式服务器尤其具有优势，可确保日志按到达顺序合并。HAProxy 也可使用 Unix 套接字将日志发送至本地 syslog 守护进程，但强烈不建议使用，因为当 syslog 服务器重启而 haproxy 仍在运行时，套接字将被替换，新日志将丢失。由于 HAProxy 将被隔离在 chroot 环境中，它将无法重新连接至新的套接字。现场观察表明，Unix 套接字使用的日志缓冲区非常小，即使在极轻负载下也可能导致消息丢失。不过，这在测试环境中可以接受。&lt;/p&gt;</description></item><item><title>9. 统计信息与监控</title><link>https://pig.center/zh/docs/haproxy/statistics-and-monitoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/statistics-and-monitoring/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;可以查询 HAProxy 的运行状态。最常用的机制是 HTTP 统计信息页面。该页面还提供了一种用于监控工具的替代 CSV 输出格式。相同的格式也通过 Unix 套接字提供。&lt;/p&gt;</description></item><item><title>10. 简化配置管理</title><link>https://pig.center/zh/docs/haproxy/configuration-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/configuration-management/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;组成集群的两个 HAProxy 节点通常使用完全相同的配置，只有少数地址不同。与其为每个节点分别维护一份最终必然产生差异的重复配置，不如在配置中引用环境变量。这样，多个配置实例便可共用同一个文件，只需在系统级环境变量中保留少量差异。此功能始于 1.5 版，当时只有地址可以包含环境变量；1.6 版进一步支持在所有位置使用环境变量。其语法与 UNIX shell 相同：变量以美元符号（&amp;rsquo;$&amp;rsquo;）开头，后接左花括号（&amp;rsquo;{&amp;rsquo;）、变量名和右花括号（&amp;rsquo;}&amp;rsquo;）。除地址外，环境变量只在双引号包围的参数中解析；这是为了避免破坏使用含美元符号正则表达式的现有配置。&lt;/p&gt;</description></item><item><title>11. 应避免的常见陷阱</title><link>https://pig.center/zh/docs/haproxy/traps/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/traps/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;有时会有人报告：系统重启后 HAProxy 服务没有启动，但手动启动又能正常工作。这通常出现在使用 keepalived 等集群 IP 地址机制、只把服务 IP 分配给主节点的环境中。HAProxy 绑定 0.0.0.0 时一切正常，改为绑定虚拟 IP 后却无法启动。原因是服务启动时，本地节点尚未持有该虚拟 IP；HAProxy 尝试绑定时，系统会因其不是本地 IP 地址而拒绝操作。正确的解决办法不是推迟 HAProxy 服务启动——这无法应对服务重启——而是把系统配置为允许绑定非本地地址。在 Linux 上，将 net.ipv4.ip_nonlocal_bind sysctl 设为 1 即可。如果需要透明截获经 HAProxy 转发到特定目标地址的 IP 流量，也必须启用此设置。&lt;/p&gt;</description></item><item><title>12. 调试与性能问题</title><link>https://pig.center/zh/docs/haproxy/debugging-and-performance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/debugging-and-performance/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;当 HAProxy 以 &amp;ldquo;-d&amp;rdquo; 选项启动时，它将以前台模式运行，并为每个事件打印一行输出，例如接收到的连接、连接结束，以及每个请求或响应头行。此调试输出在内容被处理前发出，因此不会考虑本地修改。主要用途是无需运行网络嗅探器即可查看请求和响应。当多个连接并行处理时，输出可读性会降低，但位于 examples/ 目录中的 &amp;ldquo;debug2ansi&amp;rdquo; 和 &amp;ldquo;debug2html&amp;rdquo; 脚本可显著改善此问题，通过为输出着色提升可读性。&lt;/p&gt;</description></item><item><title>13. 安全注意事项</title><link>https://pig.center/zh/docs/haproxy/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pig.center/zh/docs/haproxy/security/</guid><description>&lt;!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. --&gt;&#10;&lt;p&gt;HAProxy 旨在以极低的权限运行。使用它的标准方式是将其隔离到 chroot 环境中，并将其权限降级为非 root 用户，且该用户在该环境内没有任何权限，从而确保未来若发现任何漏洞，其被攻破也不会影响系统其余部分。&lt;/p&gt;</description></item></channel></rss>